@@ -566,6 +566,9 @@ def _right_rotate(self, j, k):
566
566
self .tree [self .tree [k ].parent ].left = k
567
567
self .tree [j ].parent = k
568
568
self .tree [k ].right = j
569
+ kp = self .tree [k ].parent
570
+ if kp is None :
571
+ self .root_idx = k
569
572
570
573
def _left_right_rotate (self , j , k ):
571
574
i = self .tree [k ].right
@@ -617,6 +620,9 @@ def _left_rotate(self, j, k):
617
620
self .tree [self .tree [k ].parent ].right = k
618
621
self .tree [j ].parent = k
619
622
self .tree [k ].left = j
623
+ kp = self .tree [k ].parent
624
+ if kp is None :
625
+ self .root_idx = k
620
626
621
627
class AVLTree (SelfBalancingBinaryTree ):
622
628
"""
@@ -645,9 +651,6 @@ def _right_rotate(self, j, k):
645
651
super (AVLTree , self )._right_rotate (j , k )
646
652
self .tree [j ].height = max (self .left_height (self .tree [j ]),
647
653
self .right_height (self .tree [j ])) + 1
648
- kp = self .tree [k ].parent
649
- if kp is None :
650
- self .root_idx = k
651
654
if self .is_order_statistic :
652
655
self .tree [j ].size = (self .left_size (self .tree [j ]) +
653
656
self .right_size (self .tree [j ]) + 1 )
@@ -682,9 +685,6 @@ def _left_rotate(self, j, k):
682
685
self .right_height (self .tree [j ])) + 1
683
686
self .tree [k ].height = max (self .left_height (self .tree [k ]),
684
687
self .right_height (self .tree [k ])) + 1
685
- kp = self .tree [k ].parent
686
- if kp is None :
687
- self .root_idx = k
688
688
if self .is_order_statistic :
689
689
self .tree [j ].size = (self .left_size (self .tree [j ]) +
690
690
self .right_size (self .tree [j ]) + 1 )
0 commit comments