题目地址:二叉树的最大深度
解题思路
思路来自左程云老师算法课新手班第六节
最大深度意味着接下来是没有任何一个节点,我们可以去判断,每一个节点的左右节点是否为空,为空就不再往下判断。
依然是使用递归的思路,一层套着一层。
每一个节点以下的最大深度是左树的最大深度与右树最大深度取最大再加一(这个节点自己,假如节点不为空的话)。
但是这个节点自己是需要进行一下判断,如果为空返回0,不再接着向下递归。
完整代码
public int maxDepth(TreeNode root) {
if (root == null) {
return 0;
}
return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
}