给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
示例:
给定二叉树 [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
返回它的最大深度 3 。
本题也是二叉树 或者树类型的经典题目 ,如果有递归思想就能很快实现。
对于本题来说,求最大深度,惯性想到根节点的深度 等于 左子树与右子树深度的最大值加一 。
于是问题的大概解决思路就出来了
class Solution {
public int maxDepth(TreeNode root) {
// 递归的方式解决问题
if(root==null){
return 0;
}
int lDep= maxDepth(root.left);
int rDep =maxDepth(root.right);
return Math.max(lDep,rDep)+1;
}
}
定义lDep 与 rDep 分别代表 左右子树深度 ,进行递归。