随笔 --- 是否可以用左右子树结点数差来衡量二叉树是否平衡?

文章讨论了在数据结构课程中关于平衡二叉树的问题,特别是在以节点数衡量平衡状态时,提出了除最低层外是完美二叉树的附加条件,确保高度为O(logn)。当插入新元素导致不平衡时,调整至平衡变得复杂。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这道题目来自mooc上浙江大学由陈越 、何钦铭老师主讲的数据结构课程上。
题目如下:
在这里插入图片描述
由于评论区关闭,在这里写下我自己的思路:

  1. 根据要求使用结点数来衡量是否是平衡时,极端条件是NR = 2NL 或者反之。

    如果构建二叉树时恰好构建为斜二叉树,会导致ASL变成最大。很显然也不满足树的高度为O(logn)。

    在使用结点数来定义平衡,我们不妨再给其加上一个限定条件,就是平衡的树的除去最低一层的结点后,时完美二叉树。这样就会有出现左右子树结点树是另一侧结点数二倍时,左右子树高度差不会超过1,同时因为有 2^k - 1 = N总。一种情况是,3NR + 1 = N总,NR = 1/3*(2^k + 2),所以满足树的高度为O(logn)。

  2. 当插入新元素使平衡树不在平衡时,因为我们多引入一个条件,在我看来重新调整为平衡变的非常困难。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值