二叉树的最大深度
1 | 给定一个二叉树,找出其最大深度。 |
我们解决这个问题可以有两种思路,从上往下的解决,和从下往上的解决,对应着前序和后序两种不同的思路
1.从上往下解决问题:我们将问题宏观去看,就是找根节点左子树和右子树两者的最大高度,当我们向深处遍历一层,深度就+1,当左右两侧都到达最深处时返回两者最大值
1 | private int answer; |
2.从下往上解决问题:当我们找到最深处时,root==null,那么它的深度为0,这个时候我们可以得到其父节点的深度,然后逐层向上求出各个节点的深度
1 | public static int postHeight(TreeNode root) { |