news 2026/4/28 12:51:30

【数据结构】平衡二叉树

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【数据结构】平衡二叉树

一、平衡二叉树 完整定义

平衡二叉树,简称 AVL 树,是改良版二叉排序树满足两个硬性条件:
具备二叉排序树性质
左子树所有结点值 < 根 < 右子树所有结点值
具备平衡性质
任意结点的左、右子树高度差的绝对值 ≤ 1
左右子树,也必须是平衡二叉树


二、核心概念:平衡因子

公式(死记,不能写反)
平衡因左子树高度右子树高度
合法范围
BF∈{−1, 0, 1}
BF=1:左子树更高(左偏)
BF=0:左右等高(完全平衡)
BF=−1:右子树更高(右偏)

∣BF∣≥2:树失衡,必须旋转调整


三、为什么需要 AVL 树

普通二叉排序树 BST
有序序列插入会变成斜树,查找复杂度退化到 O(n)
AVL 树强制平衡
始终控制树高为 O(log 2 n)
查找、插入、删除稳定高效


四、四大失衡类型 + 完整旋转操作

插入新结点后,从下往上找第一个失衡结点,以该结点为根调整
1. LL 型 左左失衡
成因:在左子树的左子树插入结点
失衡特征:根结点 BF=2,

左孩子 BF=1
调整方式:单次右旋转
原理:
左孩子上位,原根下沉为右孩子,左孩子的右子树过继给原根左子树
2. RR 型 右右失衡
成因:在右子树的右子树插入结点
失衡特征:根结点 BF=−2,

右孩子 BF=−1

调整方式:单次左旋转
原理:
右孩子上位,原根下沉为左孩子,右孩子的左子树过继给原根右子树
3. LR 型 左右失衡
成因:在左子树的右子树插入结点
失衡特征:根 BF=2,

左孩子 BF=−1
调整方式:两次旋转
① 先对左子树 左旋 → 转为 LL 型
② 再对根结点 右旋
4. RL 型 右左失衡
成因:在右子树的左子树插入结点
失衡特征:根

BF=−2,右孩子
BF=1
调整方式:两次旋转
① 先对右子树 右旋 → 转为 RR 型
② 再对根结点 左旋


极简口诀
同侧单旋,异侧双旋LL 右,RR 左LR 先左后右,RL 先右后左


五、插入与删除的区别

插入操作
只会导致一处失衡,最多两次旋转即可全局平衡,向上回溯只走一层
删除操作
会导致祖先链连续失衡,需要逐层向上回溯、多次旋转,调整次数更多


六、高度与时间复杂度

设总结点数 n
AVL 树最大高度:h≈1.44log 2 n
查找、插入、删除时间复杂度:稳定 O(log 2 n)
对比 BST
BST:最好 O(logn),最坏 O(n)
AVL:无最坏退化,严格平衡


七、超级重要 易错注意点

旋转绝对不能破坏二叉排序树规则
所有旋转后,仍必须满足:左 < 根 < 右
平衡因子计算严禁写反
只能:左高 − 右高,写反整题全错
找失衡结点顺序:从插入结点向上找第一个
∣BF∣≥2的结点
平衡二叉树树形不唯一,平衡方案不唯一,但平衡规则固定
AVL 树是高度平衡,不是完全二叉树、不是满二叉树
平衡因子需要每次旋转后重新更新


八、BST 与 AVL 树对比总结

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/28 12:49:25

英雄联盟回放文件打不开?这个免费工具帮你轻松解决

英雄联盟回放文件打不开&#xff1f;这个免费工具帮你轻松解决 【免费下载链接】ROFL-Player (No longer supported) One stop shop utility for viewing League of Legends replays! 项目地址: https://gitcode.com/gh_mirrors/ro/ROFL-Player 你是否曾经遇到过这样的情…

作者头像 李华
网站建设 2026/4/28 12:48:46

Elide 7.1.17 发布:多组件升级助力 API 搭建平台再进化

【导语&#xff1a;Elide 作为互联网和移动端应用数据 API 搭建平台&#xff0c;凭借 JPA 注释模型可轻松搭建服务。如今 Elide 7.1.17 正式发布&#xff0c;带来多项更新&#xff0c;将为开发者带来新的体验。】Elide&#xff1a;轻松搭建 API 服务的利器Elide 是一款强大的互…

作者头像 李华
网站建设 2026/4/28 12:45:20

从‘C盘杀手’到和谐共存:我的CUDA 11.7 卸载与重装踩坑实录

从‘C盘杀手’到和谐共存&#xff1a;我的CUDA 11.7 卸载与重装踩坑实录 那天打开资源管理器&#xff0c;看到C盘亮起刺眼的红色警告&#xff0c;我的第一反应是&#xff1a;"这不可能&#xff01;"明明已经把CUDA安装到D盘&#xff0c;为什么系统盘还是被蚕食殆尽&a…

作者头像 李华
网站建设 2026/4/28 12:40:22

终极Vulkan显存测试工具:memtest_vulkan完整指南

终极Vulkan显存测试工具&#xff1a;memtest_vulkan完整指南 【免费下载链接】memtest_vulkan Vulkan compute tool for testing video memory stability 项目地址: https://gitcode.com/gh_mirrors/me/memtest_vulkan 在当今GPU计算和图形处理日益重要的时代&#xff0…

作者头像 李华