面试常见算法 二叉树
文章平均质量分 75
shijuan0123
山科学生
展开
-
用递归和非递归的形式实现二叉树的前中后序遍历
题目:用递归和非递归的形式实现二叉树的前中后序遍历/*参考博客:http://ocaicai.iteye.com/blog/1047397*/Java代码:分了3个Java文件Tree.java,TreeNode.java,TreeToSequence.javaTreeNode.java中public class TreeNode{int val=0;T原创 2016-07-15 19:29:28 · 302 阅读 · 0 评论 -
二叉树的按层遍历
题目:有一棵二叉树,请设计一个算法,按照层次打印这棵二叉树。给定二叉树的根结点root,请返回打印结果,结果按照每一层一个数组进行储存,所有数组的顺序按照层数从上往下,且每一层的数组内元素按照从左往右排列。保证结点数小于等于500。解题思路:1.新建一个队列,将头结点压入队列。2个变量,last和nlast。last表示当前行的最右节点,初始值为头节点。原创 2016-07-16 16:09:55 · 461 阅读 · 0 评论 -
寻找错误结点
题目:一棵二叉树原本是搜索二叉树,但是其中有两个节点调换了位置,使得这棵二叉树不再是搜索二叉树,请找到这两个错误节点并返回他们的值。保证二叉树中结点的值各不相同。给定一棵树的根结点,请返回两个调换了位置的值,其中小的值在前。Java代码:import java.util.*;/*public class TreeNode { int val = 0原创 2016-07-19 16:05:07 · 319 阅读 · 0 评论 -
找到含有节点最多 的搜索二叉子树
题目:有一棵二叉树,其中所有节点的值都不一样,找到含有节点最多 的搜索二叉子树,并返回这棵子树的头节点.给定二叉树的头结点root,请返回所求的头结点,若出现多个节点最多的子树,返回头结点权值最大的。Java代码:import java.util.*;/*public class TreeNode { int val = 0; TreeNod原创 2016-07-19 22:06:53 · 864 阅读 · 0 评论