给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
示例: 给定二叉树 [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。但是内存消耗都差不多。
