题解 | #二叉树的深度#

二叉树的深度

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;
    }
}

全部评论

相关推荐

04-29 18:07
常州大学 Java
寂静羽翼:兄弟我已经亲身经历了,双非没实习很多大厂还是会给笔试的,可是有的公司笔试做的好也不给面一直卡着,ssob基本看我没实习都拒绝我了,但是每天投满偶尔也能有一两场初创公司的面试,但是薪资基本在五六千
点赞 评论 收藏
分享
04-15 23:42
中山大学 Java
ResourceUtilization:过几天楼主就会捧着一堆offer来问牛友们该怎么选辣
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务