给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
来源:力扣(LeetCode)104题
链接:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
对于树,还是用递归。
找一个树最大深度有如下步骤
1)找到左子树的最大深度x
2)找到右子树的最大深度y
3)返回max(x,y)+1就是原树的最大深度
这样我们就找到了递归。
然后再来看一下在叶子结点上上述步骤有什么变化。
1)左子树为null,无法进行递归,直接返回0
2)右子树为null,无法进行递归,直接返回0
3)没有变化,返回max(0,0)+1=1就是叶子结点的深度
所以在代码中一开始还得判断null。
代码如下:
/**
* Definition for a binary tree node.
* public class TreeNode {
* public int val;
* public TreeNode left;
* public TreeNode right;
* public TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public int MaxDepth(TreeNode root) {
if(root==null) return 0;
int x=MaxDepth(root.left);
int y=MaxDepth(root.right);
return Math.Max(x,y)+1;
}
}