【2024考研】题解17 | #二叉树的最大深度#简谐美

二叉树的最大深度

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


#include <algorithm>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param root TreeNode类 
     * @return int整型
     */
    int maxDepth(TreeNode* root) {
        // write code here
        if(root == nullptr) return 0;
        //加的这个1是我的理解诶是算上了根0,着实优雅
        return max(maxDepth(root->left), maxDepth(root->right)) + 1;
    }
};  

时间复杂度:

O(n),其中n是二叉树的节点个数。每个节点都需要遍历一次。

空间复杂度:

O(h),其中h是二叉树的高度。递归调用栈的最大深度是二叉树的高度。

基本算法思想:

使用递归的方式求解二叉树的最大深度。

递归函数的定义是返回以当前节点为根节点的子树的最大深度。

递归函数的终止条件是当前节点为空,返回0。

递归函数的返回结果是左子树的最大深度和右子树的最大深度的较大值加1。

注:加1是因为在计算二叉树的深度时,需要把当前节点也算上。所以在递归函数中,每次返回的是左子树和右子树的深度的较大值加1,表示当前节点的深度。这样就可以递归地计算出整棵二叉树的深度了。

2024考研数据结构 文章被收录于专栏

本人考研刷算法题,立此专栏练习强化。

全部评论

相关推荐

迟缓的斜杠青年巴比Q...:简历被投过的公司卖出去了,我前两天遇到过更离谱的,打电话来问我有没有意向报班学Java学习,服了,还拿我学校一个学长在他们那报班学了之后干了华为OD当招牌
点赞 评论 收藏
分享
能干的三文鱼刷了10...:公司可能有弄嵌入式需要会画pcb的需求,而且pcb能快速直观看出一个人某方面的实力。看看是否有面试资格。问你问题也能ai出来,pcb这东西能作假概率不高
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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