【算法题】二叉树的最大深度

二叉树的最大深度

https://www.nowcoder.com/practice/8a2b2bf6c19b4f23a9bdb9b233eefa73?tpId=196&tqId=37055&rp=1&sourceUrl=%2Fexam%2Foj%3FquestionJobId%3D10%26subTabName%3Donline_coding_page&difficulty=undefined&judgeStatus=undefined&tags=&title=

这题让计算二叉树的深度,如果节点为空,则深度为 0 ,否则我们通过递归的方式分别计算左子树和右子树的深度,那么二叉树的最大深度就是取两个子树的最大深度加 1 ,这个 1 就是当前节点贡献的深度,如下图所示:

alt

    public int maxDepth(TreeNode root) {
        if (root == null)
            return 0;
        // 递归,取左右子树的最大深度加 1 。
        return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
    }

public:
    int maxDepth(TreeNode *root) {
        if (root == nullptr)
            return 0;
        // 递归,取左右子树的最大深度加 1 。
        return max(maxDepth(root->left), maxDepth(root->right)) + 1;
    }

各大厂算法面试题已经整理好了,请看这里:《算法专栏》

#笔试#

为了应对春招和秋招找工作,我经过长时间的收集和整理了各大厂的算法面试题,所有的算法题我都已经做了实现,大家可以根据自己需要面试的大厂选择练习即可。适宜人群: 在校生、社招求职者及自学者。

全部评论

相关推荐

点赞 评论 收藏
分享
05-16 11:16
已编辑
东华理工大学 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务