我旋转下图所示的树是一棵AVL树,但是我们需要在A的左子树的左边插入一个元素,由于关键节点A的存在,树会变得不平衡。 平衡因子不在-1到1之间的节点称为关键节点。 为了重新平衡树,执行LL旋转,如下图所示。 节点B成为根节点,A和T3分别是它的左子节点和右子节点。T1和T2变成了A的左右子树。 ![]() 例子:将值为12的节点插入到下图所示的树中。 ![]() 解决方案:12将被插入到25的左边,因此,它会干扰树的AVLness。树需要通过LL旋转来重新平衡。 在这里,关键节点100将被移到它的右边,它的左子树(B)的根将成为树的新根节点。 B的右子树即T2(根节点75)将位于节点A(值为100)的左侧。 按照这个过程,树将被重新平衡,因此,它将是插入12后生成的AVL树。 ![]()
下一个话题
双链表
|