题目
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
分析
所以结果为 max( 头结点左子树的最大深度, 头结点右子树的最大深度)+1
- 先求height(node.left)
- 再求height(node.right)
- 然后取最大值
Math.max(node.left == null ? 0 : height(node.left), node.right == null ? 0 : height(node.right)) + 1;
代码
public class Solution {
public int TreeDepth(TreeNode root) {
if(root == null)return 0;
return height(root);
}
public int height(TreeNode node){
return Math.max(node.left == null ? 0 : height(node.left), node.right == null ? 0 : height(node.right)) + 1;
}
}