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

二叉树-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;   }
};

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

 

 

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

http://www.lryc.cn/news/2401576.html

相关文章:

  • 物料转运人形机器人适合应用于那些行业?解锁千行百业的智慧物流革命
  • k8s开发webhook使用certmanager生成证书
  • 时序预测模型测试总结
  • 第四十五天打卡
  • springboot mysql/mariadb迁移成oceanbase
  • npm install 报错:npm error: ...node_modules\deasync npm error command failed
  • Filebeat收集nginx日志到elasticsearch,最终在kibana做展示(二)
  • halcon c# 自带examples报错 Matching
  • 服务器重启后配置丢失怎么办?
  • Postgresql常用函数操作
  • 用 NGINX 搭建高效 IMAP 代理`ngx_mail_imap_module`
  • 湖北理元理律所债务优化实践:法律技术与人文关怀的双轨服务
  • Springboot——整合websocket并根据type区别处理
  • Qiskit:量子计算模拟器
  • 龙虎榜——20250605
  • PDF 转 HTML5 —— HTML5 填充图形不支持 Even-Odd 奇偶规则?(第二部分)
  • 大数据离线同步工具 DataX 深度实践与 DataX Web 可视化指南
  • 记一个判决书查询API接口的开发文档
  • 残月个人拟态主页
  • 热门消息中间件汇总
  • AiPy实战:10分钟用AI造了个音乐游戏!
  • Python Rio 【图像处理】库简介
  • 贪心算法应用:分数背包问题详解
  • PHP舆情监控分析系统(9个平台)
  • 金孚媒重磅推出德国顶级媒体原生广告整合服务,覆盖12家主流媒体
  • Mnist手写数字
  • 《一生一芯》数字实验三:加法器与ALU
  • Go 语言并发编程基础:Goroutine 的创建与调度
  • 三甲医院“AI平台+专家系统”双轮驱动模式的最新编程方向分析
  • 第12期_网站搭建_几时网络验证1.3二改源码包2024 软件卡密系统 虚拟主机搭建笔记