이제 그림 9-4의 왼쪽 회전 연산을 코드로 구현해 보겠습니다.
코드 9-3
def __left_rotate(self, n):
# n's right child
r = n.right
# r's left child
l = r.left
# l을 n의 오른쪽 자식으로
l.parent = n
n.right = l
# n.parent를 r.parent로
# n이 루트라면 트리의 루트도 업데이트
if n == self.__root:
self.__root = r
elif n.parent.left == n:
n.parent.left = r
else:
n.parent.right = r
r.parent = n.parent
# n을 r의 왼쪽 자식으로
r.left = n
n.parent = r