题解 | #二叉树的深度#
二叉树的深度
https://www.nowcoder.com/practice/435fb86331474282a3499955f0a41e8b
import java.util.*;
/**
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
*/
/**
解题思路:
只需要计算出左子树的最大深度或者右子树的最大深度即可
计算出来后,树的总高度就为max(左子树,右子树) + 1
问题的关键点就在于怎么计算一个树的高度:当一个树没有左右节点时,树的深度就是1
*/
public class Solution {
public int TreeDepth(TreeNode root) {
// 临界条件判断,同时也是递归出口,当一颗树的左/右节点为null,说明该树的左/右高度为0
if(root == null){
return 0;
}
// 计算左子树高度
int leftL = 0;
int rightL = 0;
int max = 0;
if(root.left != null){
leftL = TreeDepth(root.left);
}
if(root.right != null){
rightL = TreeDepth(root.right);
}
max = leftL > rightL ? leftL + 1 : rightL + 1;
return max;
}
}