平衡二叉树
定义
- 一棵空树或它的左右两个子树的高度差的绝对值不超过1。
- 左右两个子树都是一棵平衡二叉树。
实现方式
示例:
如以下平衡二叉树
插入50
插入后开始比较层级,依次查看父节点比较层级
45:左1右2,高度差1,符合
40:左1右3,高度差2,不符合,开始进行调整
从40开始,沿着往上比较的节点,开始往下找三个节点即40,45,50。找到后将这三个节点按照二叉树的方式调整,调整如图
最后接入刚开始调整的节点即可
插入42
插入后开始比较层级,依次查看父节点比较层级
40:左1右2,符合
45:左3右2,符合
35:左2右4,不符合,开始调整
从40开始,沿着往上比较的节点,开始往下找三个节点即35,45,40。找到后将这三个节点按照二叉树的方式调整,调整如图
其余的子节点按照大小归为即可
最后将整个子节点放回
插入52
插入后开始比较层级,依次查看父节点比较层级
50:左1右2,符合
45:左2右3,符合
40:左3右4,符合
25:左3右5,不符合,开始调整
从25开始,沿着往上比较的节点,开始往下找三个节点即25,40,45。找到后将这三个节点按照二叉树的方式调整,调整如图
其余的子节点按照大小归为即可,一级子节点的二级子节点跟着一级子节点走就行了