1 题目描述
2 算法思路
思路:求深度,肯定需要遍历一遍所有的节点,这里采取后序遍历(也可以层序遍历,时间复杂度都是 n)
使用递归:当前节点的深度 = 左子树的深度 和 右子树的深度 的较大值 再加上 1
递归思路:
- 终止条件:当root为空时,说明已经到了叶子节点,返回0
- 递归工作:(后序遍历)
- 计算左子树的深度 depth1
- 计算右子树深度 depth2
- 返回值,max(depth1,depth2) + 1
3 代码
class Solution {
public int maxDepth(TreeNode root) {
if(root == null)
return 0;
return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
}
}
4 提交结果