news 2026/8/30 7:07:04

【LeetCode刷题】二叉树的最大深度

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【LeetCode刷题】二叉树的最大深度

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

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

示例 1:

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

示例 2:

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

提示:

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

解题思路

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

递归(深度优先搜索,DFS):利用 “分治思想”,树的最大深度 = 左子树最大深度与右子树最大深度的较大值 + 1(根节点本身);

Python代码

from typing import Optional class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right class Solution: def maxDepth(self, root: Optional[TreeNode]) -> int: # 递归终止条件:空节点的深度为0 if not root: return 0 # 递归计算左、右子树的最大深度 left_depth = self.maxDepth(root.left) right_depth = self.maxDepth(root.right) # 当前树的最大深度 = 子树最大深度 + 1(当前根节点) return max(left_depth, right_depth) + 1 if __name__ == "__main__": sol = Solution() # 示例1:构建树 [3,9,20,null,null,15,7] → 预期输出:3 root1 = TreeNode(3) root1.left = TreeNode(9) root1.right = TreeNode(20) root1.right.left = TreeNode(15) root1.right.right = TreeNode(7) print("示例1输出:", sol.maxDepth(root1)) print("预期结果:3") # 示例2:构建树 [1,null,2] → 预期输出:2 root2 = TreeNode(1) root2.right = TreeNode(2) print("示例2输出:", sol.maxDepth(root2)) print("预期结果:2")

LeetCode提交代码

# Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def maxDepth(self, root: Optional[TreeNode]) -> int: if not root: return 0 left_depth = self.maxDepth(root.left) right_depth = self.maxDepth(root.right) return max(left_depth, right_depth) + 1

程序运行截图展示

总结

本文介绍了计算二叉树最大深度的递归解法。最大深度定义为从根节点到最远叶子节点的最长路径上的节点数。采用分治思想,将问题分解为计算左右子树的最大深度,取较大值加1(当前节点)作为结果。Python实现使用深度优先搜索(DFS)递归方法,当节点为空时返回0,否则递归计算左右子树深度并返回较大值+1。示例验证了代码的正确性,如[3,9,20,null,null,15,7]输出3,[1,null,2]输出2。该方法简洁高效,时间复杂度O(n)。

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

从零设计STM32H7内存管理:DMA兼容性与多核域实战指南

STM32H7内存架构深度解析&#xff1a;多域DMA优化与实战配置指南 1. STM32H7内存架构全景透视 STM32H7系列微控制器的内存系统堪称ARM Cortex-M阵营中最复杂的架构之一&#xff0c;其设计充分体现了性能分层和功能隔离的理念。与传统的单一内存空间不同&#xff0c;H7将内存划…

作者头像 李华
网站建设 2026/8/16 15:24:26

5分钟入门ComfyUI视频生成:用WanVideoWrapper插件打造专业级视频

5分钟入门ComfyUI视频生成&#xff1a;用WanVideoWrapper插件打造专业级视频 【免费下载链接】ComfyUI-WanVideoWrapper 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-WanVideoWrapper 想快速掌握AI视频创作技巧吗&#xff1f;ComfyUI-WanVideoWrapper插…

作者头像 李华
网站建设 2026/8/25 23:04:20

微信联系开发者:遇到问题有地方咨询

微信联系开发者&#xff1a;遇到问题有地方咨询 1. 这不是冷冰冰的工具&#xff0c;而是一个有温度的AI服务 你有没有试过下载一个AI工具&#xff0c;兴致勃勃地打开&#xff0c;结果卡在第一步——上传图片没反应&#xff1f;或者调了半天参数&#xff0c;生成的卡通图要么像…

作者头像 李华
网站建设 2026/8/26 10:35:01

Clawdbot真实应用:Qwen3-32B驱动的电商智能导购Agent落地案例

Clawdbot真实应用&#xff1a;Qwen3-32B驱动的电商智能导购Agent落地案例 1. 为什么需要一个电商智能导购Agent&#xff1f; 你有没有遇到过这样的场景&#xff1a; 一家中型服装电商公司&#xff0c;每天收到上千条客户咨询——“这件连衣裙适合什么身材&#xff1f;”“同款…

作者头像 李华
网站建设 2026/8/27 15:36:06

不花一分钱!10个“去AI味”指令+3款降AI工具实测,AI率99.9%降至5.7%

“明明手动改了三天&#xff0c;为什么AIGC检测还是红一片&#xff1f;” 这其实不是你的问题&#xff0c;而是现在的检测算法变了。以前查重看重复率&#xff0c;现在降ai看的是完美度&#xff0c;AI写文逻辑太顺畅、结构太工整&#xff0c;这种完美在机器眼里就是最大的破绽…

作者头像 李华