平衡二叉树的旋转
平衡二叉树的旋转。
平衡二叉树的旋转分四种情况,我分为两类:
1. 左左情况和右右情况,这两种情况下,非平衡二叉树调整为平衡二叉树只需经过一次旋转即可。
a. 左左情况,以左子树的根节点进行旋转,如下图B节点,进行顺时针旋转。结果如下图。
b. 右右情况,该情况下和左左情况刚好对称,旋转规则是,以右子树的根节点进行旋转,如图C节点所示,进行逆时针旋转。
2. 第二类,左右情况和右左情况,这两种情况下,需要经过两次旋转才能将非平衡二叉树调整为二叉树。
c. 左右情况。首先将左子树进行旋转,把左右情况调整为左左情况。接下来的调整按左左情况进行即可。
d. 右左情况。和左右情况相似,首先将右左情况调整为右右情况,然后按右右情况进行调整即可。