千家信息网

python中的平衡二叉树该怎么理解

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这期内容当中小编将会给大家带来有关python中的平衡二叉树该怎么理解,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。题目描述输入一棵二叉树的根节点,判断该树是不是平
千家信息网最后更新 2026年11月01日python中的平衡二叉树该怎么理解

这期内容当中小编将会给大家带来有关python中的平衡二叉树该怎么理解,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

题目描述

输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过 1,那么它就是一棵平衡二叉树。

  • 1 <= 树的结点个数 <= 10000

题目样例

示例

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

3
/ \
9 20
/ \
15 7
返回 true 。
给定二叉树 [1,2,2,3,3,null,null,4,4]

1
/ \
2 2
/ \
3 3
/ \
4 4
返回 false 。

题目思考

  1. 可以只需要遍历一遍节点得到结果吗?

解决方案

思路
  • 有了昨天 剑指 Offer 55 - I. 二叉树的深度 - leetcode 剑指 offer 系列的铺垫, 这道题相信大家都可以迎刃而解
  • 一个比较容易想到的思路是: 先计算出每个节点的深度, 并将其存入 节点=>深度字典中; 然后再遍历一遍节点, 针对每个节点, 判断它左右子节点的深度是否满足要求, 所有节点都满足的话才说明平衡. 但是这种方案需要遍历两边节点, 效率不太高, 如何一次性遍历得出结果呢?
  • 回顾递归求深度的方案, 我们是先求得左右子树的深度, 然后才进一步得到当前节点的深度, 所以我们就可以直接加一个全局变量记录当前是否平衡, 并额外引入一个逻辑来比较子树深度, 如果不满足要求, 则直接把变量置为 false 直接返回即可
  • 注意本题并不适用于 BFS 迭代求深度的算法, 因为迭代方案求的是当前节点 从上到下所在的层数, 每个节点并不知道自己的深度(从下往上, 从叶子节点到自身)究竟是多少, 所以无从判断是否平衡
  • 下面代码对必要的步骤有详细的解释, 方便大家理解
复杂度
  • 时间复杂度 O(N): 需要遍历整个树
  • 空间复杂度 O(H): H 表示树的高度, 也即递归的栈的消耗
代码
class Solution:
def isBalanced(self, root: TreeNode) -> bool:
# 递归, 边求深度边判断, 返回深度, 全局变量标记当前是否平衡
balance = True

def getDepth(node):
nonlocal balance
if not node or not balance:
# 递归出口: 如果节点为空或者不平衡, 返回0, 无需继续递归了
return 0
ldepth = getDepth(node.left)
rdepth = getDepth(node.right)
if abs(ldepth - rdepth) > 1:
# 不平衡, 全局变量设为false
balance = False
# 返回当前节点自身的深度
return max(ldepth, rdepth) + 1

getDepth(root)
return balance

上述就是小编为大家分享的python中的平衡二叉树该怎么理解了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

节点 深度 递归 变量 方案 复杂 全局 复杂度 题目 子树 代码 内容 就是 思路 结果 分析 迭代 不适 必要 迎刃而解 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海喔噻互联网科技有限公司 互联网最新的科技 互联网 科技创新 深圳互联网络科技有限公司 一五八零互联网科技 天扬科技互联网广告 科技大学互联网专业好不好 恒生科技互联网指数分析 中国最先进互联网科技公司 济南华为互联网科技产业总部基地 黑科技闪耀互联网之光 2021互联网科技公司排名 互联网金融科技公司的优势 黑云互联网科技有限公司 富国互联网金融科技混合基金 上海创道互联网络科技有限公司 互联网硬科技公司 互联网科技职业技能培训学校 唐山双旺合互联网科技产业园 绵阳真晨互联网科技有限公司 互联网科技图片 科技股互联网 互联网科技资迅 科技创新互联网企业 科技互联网公司logo 央行互联网金融科技公司 互联网校园科技培训 允成互联网科技有限公司融资 长沙渺峰互联网科技有限公司 马化腾互联网科技教学
0