当前位置: 首页 > news >正文

二叉树-104.二叉树的最大深度-力扣(LeetCode)

一、题目解析

这里需要注意根节点的深度是1,也就是说计算深度的是从1开始计算的

 

 二、算法原理

解法1:广度搜索,使用队列

解法2:深度搜索,使用递归

当计算出左子树的深度l,与右子树的深度r时,总的深度为max(l,r)+1

当root == nullptr时,返回0,此时该节点递归返回的值是1,然后依次返回

先递归我们的左树, 此时根节点为B,B在递归,左树为空,右树也为空,此时B树的深度为max(0,0)+1=1,然后B树递归完,继续递归右树C,C为根节点继续递归,C的左树D继续递归,D的左右子树为空,D递归结果为1返回,C的右树为空返回0,此时C树的深度为max(1,0)+1=2,C的深度为2,A的深度为B,C子树的最大值加1,所以最终递归结果为3。

在递归时,需要我们自己去画递归展开图去体会递归的过程,这里受限于篇幅原因,将递归展开图压缩了。

三、代码示例

class Solution {
public:int maxDepth(TreeNode* root) {if(root == nullptr) return 0;return max(maxDepth(root->left),maxDepth(root->right))+1;   }
};

代码很简短,但重要的是了解递归展开的逻辑,明白为啥这样能得出正确答案。

 

 

看到最后,如果对您有所帮助,还请点赞、收藏和关注,点点关注不迷路,我们下期再见! 

相关文章:

  • Linux 下生成动态库时 -fPIC的作用详解
  • SpringBoot(八) --- SpringBoot原理
  • 电工基础【7】往返运动控制、星三角形降压启动
  • 深度学习N2周:构建词典
  • 【LeetCode】1061. 按字典序排列最小的等效字符串(并查集)
  • Qt 按钮类控件(Push Button 与 Radio Button)(1)
  • SLG游戏分析
  • opencv学习笔记1:图像基础、图像操作、直方图均衡化详解
  • python打卡训练营打卡记录day45
  • 【C++高阶二】STL的map和set
  • rapidocr 3.0 在线demo来了
  • 插入排序,二分查找,字符数组 day8
  • 如何配置Git LFS?
  • [蓝桥杯]倍数问题
  • ZooKeeper 安装教程(Windows + Linux 双平台)
  • 26考研 | 王道 | 计算机组成原理 | 三、存储系统
  • [蓝桥杯]堆的计数
  • 2023年全国研究生数学建模竞赛华为杯A题WLAN网络信道接入机制建模求解全过程文档及程序
  • function call到MCP技术演进
  • 44、web实验-后台管理系统基本功能
  • 网站建设维护培训/可以免费做网站推广的平台
  • 如何更换wordpress域名/咸阳seo公司
  • 想搭网站做软件首先要学设么/今日新闻摘抄十条简短
  • 湖南郴州市是几线城市/windows优化大师卸载
  • 有没有专门学做婴儿衣服的网站/电商培训班一般多少钱
  • 沈阳科技网站建设/海外网站cdn加速