python中的平衡二叉树该怎么理解
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这期内容当中小编将会给大家带来有关python中的平衡二叉树该怎么理解,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。题目描述输入一棵二叉树的根节点,判断该树是不是平
千家信息网最后更新 2025年12月02日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 。
题目思考
可以只需要遍历一遍节点得到结果吗?
解决方案
思路
有了昨天 剑指 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安全错误
数据库的锁怎样保障安全
滨湖区互联网智能科技产品是什么
华为服务器部门整体出售价格
ibm服务器维修单
辛集市网络安全招标公告
票据交易软件开发
网络安全a类是什么意思
华为云香港服务器延迟
手机建立vpn服务器
外国资源数据库有哪些
软件开发硬件平台需求
系统软件开发完整性保证
河北外协加工软件开发教程
mysql数据库锁定
查一查人才数据库陈加贞
大专学计算机还是网络技术好
修复软件数据库文件
山西放心软件开发设施参考价格
下面什么不是全文数据库
数据库和vs的下载顺序
城投软件开发
数据库的连接代码是什么
2021年网络安全公司50强
数据库和sql优化的几种方式
富国科技互联网混合基金
千品在线网络技术
昆明软件开发程序公司
在网络安全生态构建策略
广东企业云空间软件服务器
东莞无限软件开发代理价格
数据库的基本函数