摘要: 第16 题:题目(微软):输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。例如输入8/ \6 10/ \ / \5 7 9 11输出8 6 10 5 7 9 11思路:遇到这种按层执行或者按次序执行的动作,一般会联想到队列 1 package com.rui.micro... 阅读全文
posted @ 2015-10-23 18:30 蟹粉小笼包 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 第15 题:题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。例如输入:8/ \6 10/\ /\5 7 9 11输出:8/ \10 6/\ /\11 9 7 5思路:1.递归: 根节点的镜像必然由其左子树... 阅读全文
posted @ 2015-10-23 18:09 蟹粉小笼包 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 第14 题:题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15 和数字15。由于4+11=15,因此输出4 和11思路:因为是已排好... 阅读全文
posted @ 2015-10-23 17:12 蟹粉小笼包 阅读(841) 评论(0) 推荐(0) 编辑
摘要: 第13 题:题目:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0 个结点为链表的尾指针思路:先遍历链表,求得总节点数N,则倒数第K个节点是正数N-K,时间复杂度为o(N+N-K) 1 package com.rui.microsoft; 2 3 public class Test13... 阅读全文
posted @ 2015-10-23 16:55 蟹粉小笼包 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 题目:已知二叉树的前序序列和中序序列求解树比如 6 4 83 5 7前序序列为6,4,3,5,8,7中序序列为3,4,5,6,7,8思路: 前序遍历序列的第一个元素必为根节点 则中序遍历序列中,该节点之前的为左子树,该节点之后的为右子树,若该节点之前没有节点,则左子树为空,反之右子... 阅读全文
posted @ 2015-10-23 16:02 蟹粉小笼包 阅读(3067) 评论(0) 推荐(0) 编辑
摘要: 第11 题求二叉树中节点的最大距离...如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义"距离"为两节点之间边的个数。写一个程序,求一棵二叉树中相距最远的两个节点之间的距离思路: 一棵树中节点的最大距离,对于根节点来说,可以看做是左子树的最大深度加右子树的最大深度在加上左右各... 阅读全文
posted @ 2015-10-23 15:19 蟹粉小笼包 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 第10 题翻转句子中单词的顺序。题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“I am a student.”,则输出“student. a am I”思路:可以先翻转整个字符串,然后依次截取各个单词,... 阅读全文
posted @ 2015-10-23 10:48 蟹粉小笼包 阅读(216) 评论(0) 推荐(0) 编辑