题目
给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
示例:
给定二叉树 [3,9,20,null,null,15,7],
返回它的最大深度 3 。
思路+代码
带着深度递归,通过判断是否遍历到null,使递归到叶子节点的时候会返回深度,之后获取返回的深度的最大值就可以了。
代码:
class Solution {
public int Depth(TreeNode root, int deep) {
if(root==null){
return deep;
}else{
return Math.max(Depth(root.left, deep+1), Depth(root.right, deep+1));
}
}
public int maxDepth(TreeNode root) {
if(root==null){
return 0;
}else{
return Depth(root,0);
}
}
}
结果:
感觉还可以。
官方题解中,没有带着深度遍历,是在返回的时候+1。但是内存消耗都差不多。