Changing the links of a RBT without breaking the binary search tree property.
Left Rotation
def rotate_left(self, u):
v = u.right
u.right = v.left
if v.left != self.nil:
v.left.parent = u
v.parent = u.parent
if u.parent is None:
self.root = v
elif u.parent.left == u:
u.parent.left = v
else:
u.parent.right = v
v.left, u.parent = u, v