本文参考:
平衡二叉树—》插入、删除
平衡二叉树在插入或者删除一个值之后,树的平衡性可能会被打破,这个时候,需要进行一系列的操作,恢复其平衡型。
最基础的两个操作一个是左旋,一个是右旋。
右旋
简单的伪代码就是
A.left = D;
B.right = A;
左旋
简单的伪代码就是:
A.right = C;
B.left = A;
然后就是更复杂的情况:
LL
LR
先将LR转换为LL,然后按照LL的方法旋转。
RR
RL
先将RL转换为RR,然后按照RR的方法旋转。
删除操作也会有类似的旋转操作,不过会更复杂一些,得保证删除一个节点之后,依然是一颗平衡二叉树。