news 2026/6/10 16:52:46

【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/6/10 10:58:33

颠覆认知的Python电磁场仿真:从理论到实践的全新路径

颠覆认知的Python电磁场仿真&#xff1a;从理论到实践的全新路径 【免费下载链接】fdtd A 3D electromagnetic FDTD simulator written in Python with optional GPU support 项目地址: https://gitcode.com/gh_mirrors/fd/fdtd 你是否曾因复杂的电磁场仿真软件而望而却…

作者头像 李华
网站建设 2026/6/10 0:26:24

QQ消息保护与聊天记录留存完全指南:让重要对话不再消失

QQ消息保护与聊天记录留存完全指南&#xff1a;让重要对话不再消失 【免费下载链接】LiteLoaderQQNT-Anti-Recall LiteLoaderQQNT 插件 - QQNT 简易防撤回 项目地址: https://gitcode.com/gh_mirrors/li/LiteLoaderQQNT-Anti-Recall 在日常QQ沟通中&#xff0c;您是否曾…

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

GLM-TTS性能实测:GPU显存和速度全记录

GLM-TTS性能实测&#xff1a;GPU显存和速度全记录 语音合成技术正从“能说”迈向“说得好、说得像、说得有感情”的新阶段。GLM-TTS作为智谱开源的高质量端到端TTS模型&#xff0c;凭借零样本语音克隆、音素级控制和多情感表达能力&#xff0c;迅速成为本地化语音生成场景中的…

作者头像 李华
网站建设 2026/6/10 11:01:34

家庭录音整理神器:自动分类孩子笑声、哭声和背景音乐

家庭录音整理神器&#xff1a;自动分类孩子笑声、哭声和背景音乐 家里有小宝宝的父母都经历过这样的场景&#xff1a;手机里存着上百条零碎的语音片段——孩子第一次喊“妈妈”的惊喜瞬间、午睡时均匀的呼吸声、客厅里突然爆发的咯咯笑声、还有半夜被惊醒时录下的断续哭声。这…

作者头像 李华
网站建设 2026/6/9 21:38:38

告别繁琐配置!用BSHM镜像快速实现人像透明化

告别繁琐配置&#xff01;用BSHM镜像快速实现人像透明化 你是否还在为一张产品图反复打开Photoshop、手动抠图、边缘毛躁而头疼&#xff1f;是否试过各种在线工具&#xff0c;结果不是边缘生硬&#xff0c;就是头发丝细节全丢&#xff1f;又或者&#xff0c;明明有GPU显卡&…

作者头像 李华