题解 | #二叉树的最大深度#

二叉树的最大深度

https://www.nowcoder.com/practice/8a2b2bf6c19b4f23a9bdb9b233eefa73

C语言

void recursion(struct TreeNode* node, int *maxDepth){

    static int tmpDepth = 1;    //初始化当前深度为1,根节点

    if(*maxDepth < tmpDepth) *maxDepth = tmpDepth;  //如果当前深度大于最大深度,则更新最大深度

    if(!node->left && !node->right){                //如果该节点的左右子节点都不存在,则该节点是叶子节点,返回并深度-1

        tmpDepth--;

        return;

    }

    if(node->left) {            //如果左子节点存在,深度+1并递归

        tmpDepth++;

        recursion(node->left, maxDepth);

    }

    if(node->right) {

        tmpDepth++;

        recursion(node->right, maxDepth);

    }

    tmpDepth--;                 //该节点左右子节点遍历完,深度-1并返回到上一次调用递归的位置。

}

int maxDepth(struct TreeNode* root ) {

    // write code here

    static int maxDepth = 0;        //最大深度初始为0

    if(root)    recursion(root, &maxDepth);     //根节点不存在则返回0

    return maxDepth;

}

全部评论

相关推荐

大厂的边缘业务去了也没啥用,也得不到任何成长,尤其是审核、中台这种价值产出不清楚的,别被大厂光环蒙蔽了双眼,如果你找实习工作,优先找"离钱近的业务",钱多的业务福利年终奖啥的都不会差的
陈100:呵呵。 你在大厂工作2年,后面准备好,可以随便跳很多公司。 去小厂,现在拿到所谓多的钱,有啥用啊,未来没有了。 而且应届生,工作没几年的,也不是赚钱的时间。
点赞 评论 收藏
分享
白火同学:大二有这水平很牛了,可以适当对关键信息加粗一点,比如关键技术、性能指标之类的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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