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

二叉树-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.xdnf.cn/news/12052.html

相关文章:

  • (头歌作业)-6.5 幻方(project)
  • 【大模型】MCP是啥?它和点菜、做菜、端菜有啥关系?
  • 【python深度学习】Day 45 Tensorboard使用介绍
  • [蓝桥杯]摆动序列
  • 深度强化学习驱动的智能爬取策略优化:基于网页结构特征的状态表示方法
  • Ubuntu ssh 永久添加私钥
  • Ubuntu ifconfig 查不到ens33网卡
  • 【Android基础回顾】三:Android启动流程
  • 使用Python提取PDF元数据的完整指南
  • 《棒球百科知识》1号位是什么位置·野球1号位
  • 三甲医院“AI平台+专家系统”双轮驱动模式的最新编程方向分析
  • 基于51单片机的天然气浓度检测报警系统
  • 第14节 Node.js 全局对象
  • AI系统微服务架构——服务网关与API网关
  • STM32发送MQTT请求到Onenet
  • 基于 TensorFlow 2 的 WGAN来生成表格数据、数值数据和序列数据。 WGAN生成对抗网络。代码仅供参考
  • kubernetes jenkins pipeline优化拉取大仓库性能指定分支+深度
  • 【物联网-S7Comm协议】
  • 快速用 uv 模拟发布一个 Python 依赖包到 TestPyPI 上,以及常用命令
  • scDown:单细胞RNA测序下游分析管道-文献精读140
  • Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
  • Win10停更,Win11不好用?现在Mac电脑比Win11电脑更便宜
  • 邮件多分类
  • Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
  • 【个人笔记】数据库原理(西电)
  • 使用 C/C++ 和 OpenCV 添加图片水印
  • 045-代码味道-数据泥团
  • 量子比特实现方式
  • 【Linux基础知识系列】第十一篇-Linux系统安全
  • 2025年低延迟业务DDoS防护全攻略:高可用架构与实战方案