千家信息网

如何求出python二叉树的深度

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,今天就跟大家聊聊有关如何求出python二叉树的深度,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。题目描述输入一棵二叉树的根节点,求该树的深度
千家信息网最后更新 2026年11月03日如何求出python二叉树的深度

今天就跟大家聊聊有关如何求出python二叉树的深度,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

题目描述

输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。

  • 节点总数 <= 10000

题目样例

示例

给定二叉树 [3,9,20,null,null,15,7],

3
/ \
9 20
/ \
15 7
返回它的最大深度 3 。

题目思考

  1. 如果限制只能用递归或者迭代, 如何解决?

解决方案

方案 1

思路
  • 先考虑递归做法, 尝试 DFS
  • 我们可以这样构造递归方法: 传入节点, 返回当前节点的深度, 该深度是左右子树的最大深度+1
  • 假设叶子节点的深度为 1, 显然根节点的深度就是整个树的最大深度了
  • 递归出口即节点为空的情况, 此时深度为 0
复杂度
  • 时间复杂度 O(N): 需要遍历整个树
  • 空间复杂度 O(H): H 表示树的高度, 也即递归的栈的消耗
代码
class Solution:
def maxDepth(self, root: TreeNode) -> int:
if not root:
# 递归出口, 空节点的情况
return 0
# 当前节点深度是左右子树的最大深度+1
return 1 + max(self.maxDepth(root.left), self.maxDepth(root.right))
# 也可以进一步简化为只需要一行代码..
# return 0 if not root else 1 + max(self.maxDepth(root.left), self.maxDepth(root.right))

方案 2

思路
  • 如果要求必须用迭代方式实现, 那方案 1 就不行了
  • 迭代一般可以先尝试 BFS, 这道题也不例外
  • 通过分析题目, 显然这里的深度就是指 BFS 的层数, 所以完全可以利用 剑指 Offer 32 - II. 从上到下打印二叉树 II - leetcode 剑指 offer 系列的做法得出层数, 只是不需要打印出每一层的节点, 只需要统计层数即可. 不清楚的同学可以先看看那道题的思路~
  • 下面代码对必要的步骤有详细的解释, 方便大家理解
复杂度
  • 时间复杂度 O(N): 需要遍历整个树
  • 空间复杂度 O(N): 队列的空间消耗
代码
class Solution:
def maxDepth(self, root: TreeNode) -> int:
if not root:
return 0
q = [root]
res = 0
while q:
# 当前层节点数目
curlen = len(q)
for node in q[:curlen]:
# 只追加非空子节点
if node.left:
q.append(node.left)
if node.right:
q.append(node.right)
# 队列切片, 开始处理下一层
q = q[curlen:]
# 当前层遍历完毕, 深度+1
res += 1
return res

看完上述内容,你们对如何求出python二叉树的深度有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

深度 节点 复杂 复杂度 递归 最大 代码 方案 题目 内容 思路 空间 迭代 求出 做法 就是 情况 时间 路径 队列 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技互联网 山东特亿宝互联网科技有限公司 西安纸贵互联网科技有限公司 互联网为科技 互联网科技社 电子科技大学互联网 融势互联网科技 上游互联网科技 山东吉时兔互联网科技有限公司 青海省互联网新科技 上海电发互联网科技有限公司 广州优美互联网科技 深圳国际航运科技和互联网 承德科技产业互联网发展 华服互联网科技官网 互联网科技扶贫时间 洛阳共同富裕互联网科技有限公司 恒生互联网科技业指数调整周期 新氧科技和美国互联网有关系吗 武汉亿视互联网科技有限公司 狮子座互联网科技有限公司 华脉科技工业互联网产品 青海省互联网新科技 北京三清互联网科技 互联网时代科技改变生活 岳阳华臻互联网科技有限公司 链环科技传统企业怎么转型互联网 互联网与数字科技关系 北京品多多互联网科技有限公司 河南商务圈互联网科技有限公司
0