news 2026/5/30 15:49:25

【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/5/30 11:59:16

5步搞定!DeepChat私有化AI对话平台快速部署教程

5步搞定&#xff01;DeepChat私有化AI对话平台快速部署教程 你是否担心把敏感问题发给在线大模型&#xff1f;是否厌倦了网页卡顿、响应延迟、服务中断&#xff1f;是否想拥有一个真正属于自己的AI对话空间——不联网、不上传、不依赖云服务&#xff0c;所有数据永远留在本地&…

作者头像 李华
网站建设 2026/5/29 0:35:09

translategemma-4b-it详细步骤:Ollama镜像免配置实现图文双模翻译

translategemma-4b-it详细步骤&#xff1a;Ollama镜像免配置实现图文双模翻译 1. 为什么这个翻译模型让人眼前一亮 你有没有遇到过这样的场景&#xff1a;拍下一张国外菜单、说明书或路标照片&#xff0c;想立刻知道上面写了什么&#xff0c;但手机自带翻译只能识别文字区域&…

作者头像 李华
网站建设 2026/5/28 13:46:57

Z-Image-ComfyUI调试插件开发?开启DEBUG模式

Z-Image-ComfyUI调试插件开发&#xff1f;开启DEBUG模式 在ComfyUI生态中&#xff0c;Z-Image系列模型的部署已趋于成熟——一键启动、节点拖拽、点击生成&#xff0c;流程丝滑得让人忘记背后是60亿参数的复杂计算。但当你要为Z-Image-Turbo定制一个支持双语提示词自动清洗的预…

作者头像 李华
网站建设 2026/5/29 2:48:53

AudioLDM-S在游戏开发中的应用案例:自动生成高质量环境音效全流程

AudioLDM-S在游戏开发中的应用案例&#xff1a;自动生成高质量环境音效全流程 1. 为什么游戏开发者需要AudioLDM-S 你有没有遇到过这样的情况&#xff1a;美术资源已经交付&#xff0c;程序逻辑调试完成&#xff0c;UI动效也打磨到位&#xff0c;可就差那一声“风吹过废墟的呜…

作者头像 李华
网站建设 2026/5/28 13:46:57

麦橘超然实测体验:提示词生成效果惊艳到我了

麦橘超然实测体验&#xff1a;提示词生成效果惊艳到我了 1. 开场就上图&#xff1a;第一眼就被“画质”按在椅子上 说实话&#xff0c;点开 http://127.0.0.1:6006 的那一刻&#xff0c;我并没抱太大期待——毕竟这几年试过太多“标榜高清”的本地 WebUI&#xff0c;最后不是…

作者头像 李华
网站建设 2026/5/28 20:51:21

Local Moondream2一键部署:单命令拉起服务,5分钟内完成全部配置

Local Moondream2一键部署&#xff1a;单命令拉起服务&#xff0c;5分钟内完成全部配置 1. 为什么你需要一个“看得见”的本地AI助手 你有没有过这样的时刻&#xff1a;手头有一张产品图&#xff0c;想快速生成一段适合Stable Diffusion用的英文提示词&#xff0c;却卡在描述…

作者头像 李华