news 2026/10/23 12:06:26

104. 二叉树的最大深度

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
104. 二叉树的最大深度

104. 二叉树的最大深度

简单

给定一个二叉树root,返回其最大深度。

二叉树的最大深度是指从根节点到最远叶子节点的最长路径上的节点数。

示例 1:

输入:root = [3,9,20,null,null,15,7] 输出:3

示例 2:

输入:root = [1,null,2] 输出:2

提示:

  • 树中节点的数量在[0, 104]区间内。
  • -100 <= Node.val <= 100

📝 核心笔记:二叉树的最大深度 (Maximum Depth of Binary Tree)

1. 核心思想 (一句话总结)

“向左右下属汇报工作:我的高度 = max(左下属高度, 右下属高度) + 1 (我这一层)。”

这是一个典型的后序遍历 (Post-order Traversal)模型:

  1. 先求左子树的深度。
  2. 再求右子树的深度。
  3. 最后结合两者,算出自己的深度。
2. 算法流程 (递归三步曲)
  1. 终止条件 (Base Case):
    • 如果root == null,说明到了空节点(叶子节点的下一层),深度为0。
  1. 递推 (Recurse):
    • int l = maxDepth(root.left)
    • int r = maxDepth(root.right)
  1. 回归 (Return):
    • 返回Math.max(l, r) + 1。这个+1代表当前节点本身贡献的一层高度。
🔍 代码回忆清单
// 题目:LC 104. Maximum Depth of Binary Tree class Solution { public int maxDepth(TreeNode root) { // 1. 递归终止条件:越过叶子节点,高度归零 if (root == null) { return 0; } // 2. 问左孩子有多高 int lDepth = maxDepth(root.left); // 3. 问右孩子有多高 int rDepth = maxDepth(root.right); // 4. 选高的那个,加上自己这一层,汇报给上级 return Math.max(lDepth, rDepth) + 1; } }
⚡ 快速复习 CheckList (易错点 & 扩展)
  • [ ]DFS vs BFS?
    • DFS (本解法):代码短,$O(H)$ 空间(栈深度)。
    • BFS (层序遍历):使用Queue。每遍历完一层,depth++。虽然代码长一点,但思路也很直观。如果面试官问“不用递归怎么做”,就写 BFS。
  • [ ]时间复杂度?
    • 因为每个节点都必须被访问一次才能确定最大深度。
  • [ ]空间复杂度?
    • 。平均情况 $O(\log N)$,最坏情况(退化成链表) $O(N)$。
🖼️ 数字演练

树结构:

3 / \ 9 20 / \ 15 7
  1. maxDepth(9): 左null(0), 右null(0) ->max(0,0)+1=1。
  2. maxDepth(15):max(0,0)+1=1。
  3. maxDepth(7):max(0,0)+1=1。
  4. maxDepth(20): 左(15返回1), 右(7返回1) ->max(1,1)+1=2。
  5. maxDepth(3): 左(9返回1), 右(20返回2) ->max(1,2)+1=3。

结果:3。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/23 12:06:10

leetcode 908. Smallest Range I 最小差值 I-耗时100

Problem: 908. Smallest Range I 最小差值 I 耗时100%&#xff0c;只需要考虑最大值和最小值&#xff0c;题目的example2是误导&#xff0c;其实123&#xff0c;6-33&#xff0c;只要满足mik > mx -k 一定存在[-k, k]中的某个数字s1,s2使得 mi s1 mx s2&#xff0c;否则只…

作者头像 李华
网站建设 2026/10/19 19:10:34

设置echo输出的颜色

在 Windows CMD 中&#xff0c;echo本身不能直接设置颜色&#xff0c;但有几种方法可以实现彩色输出&#xff1a;1. 使用 color命令&#xff08;全局颜色&#xff09;REM 设置控制台整体颜色 color 0A REM 黑底绿字 echo 绿色文字 color 07 REM 恢复默认&#xff08;灰底白字…

作者头像 李华
网站建设 2026/10/21 13:02:22

MySQL InnoDB的 MVCC 实现机制

MySQL InnoDB的 MVCC 实现机制1. MVCC概述什么是 MVCC当前读和快照读MVCC 与锁机制的组合2. MVCC的实现原理隐式字段&#xff1a;记录的版本元数据Undo Log&#xff1a;版本链的存储载体Undo Log 的分类版本链的形成过程Read View&#xff1a;版本可见性的判断规则不同隔离级别…

作者头像 李华
网站建设 2026/10/23 11:26:13

空间视频驱动的防护作业区人员三维重构与态势感知系统——基于像素坐标反演的空间级人员感知、统计与安全决策技术方案

空间视频驱动的防护作业区人员三维重构与态势感知系统——基于像素坐标反演的空间级人员感知、统计与安全决策技术方案技术提供方&#xff1a;镜像视界&#xff08;浙江&#xff09;科技有限公司 适用场景&#xff1a;防护作业区&#xff5c;危化生产现场&#xff5c;应急处置区…

作者头像 李华