题目一
输入一棵二叉树的根结点,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
实现
1 | public class TreeNode { |
1 | public int TreeDepth(TreeNode root) { |
题目二
输入一棵二叉树的根结点,判断该树是不是平衡二叉树。如果某二叉树中任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。
需要重复遍历结点多次的解法,简单但不足以打动面试官
1 | public class TreeNode { |
1 | public boolean IsBalanced_Solution(TreeNode root) { |
每个结点只遍历一次的解法,正是面试官喜欢的
1 | public class TreeNode { |
1 | private boolean isBalanced = true; |