c博客链接:
二叉树的深度
题目链接:
题目
给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
示例:
给定二叉树 [3,9,20,null,null,15,7],
3
/
9 20
/
15 7
返回它的最大深度 3 。
题解
使用递归,每次遍历节点,判断是否为叶子节点,如果不是叶子节点,则继续遍历并把深度加一,如果是叶子节点比较当前深度是否比前面深度大,并且返回。
做这类题目的思路是:
1.先确定输入,输出。
2.确定最小递归单元。
3.怎么由最小递归单元得出最后结果。
代码
class Solution { public int maxDepth(TreeNode root) { return max(root); } public int max(TreeNode root){ if(root==null) return 0; int left= max(root.left); int right= max(root.right); return Math.max(left,right)+1; } }