leetcode链接:https://leetcode-cn.com/problems/er-cha-shu-de-shen-du-lcof/
描述:
输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。
例如:
给定二叉树 [3,9,20,null,null,15,7],
3
/
9 20
/
15 7
返回它的最大深度 3 。
思路:
可以利用递归的方式,只考虑root,root.left,root.right即可。切记初学者递归不要深究。
递归三部曲:
- 终止条件:root==null
- 返回结果:最大depth
- 递归做什么:左右子树的深度
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public int maxDepth(TreeNode root) {
if(root == null) return 0; //终止条件
//递归左右子树
int leftDepth = maxDepth(root.left);
int rightDepth = maxDepth(root.right);
//返回左右子树最大深度+1=树的深度
return Math.max(leftDepth,rightDepth) + 1;
}
}