LR ,进行 左旋转后,Z 节点退化成不平衡的avl树?

来源:12-6 LR 和 RL

慕桂英6551356

2019-02-21

图片描述
刘老师你好,在LR的情况下,对X 进行左旋转后, Z的高度差为2(X(h+1),T3(h-1)),Z节点退化成不平衡的avl树,代码中好像没有对这个逻辑进行判断和处理

写回答

1回答

liuyubobobo

2019-02-21

对LR的处理不是一个左旋转以后就结束了哦,y处在LR的位置,之后还要对y进行右旋转哦:)


这次左旋转只是把形态转成了LL的形式,之后还要按照LL的形式继续处理啊!:)


if (balanceFactor > 1 && getBalanceFactor(node.left) < 0) {     
    node.left = leftRotate(node.left);   // 对node.left左旋转 
    return rightRotate(node);            // 之后还要对node右旋转
}


继续加油!:)

0
1
慕桂英6551356
非常感谢!懂了
2019-02-21
共1条回复

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程