DTX:
case 2
我看代码假设哈
进入循环之后
node指向n
tmp指向n的左子树(虽然么得)
把tmp存在p的右指数去(虽然是空)
把p存到n的左子树去
然后有tmp就改成黑色颜色 因为是叶子 没有就继续
把parent也改成红色 如果左右儿子都有的话
augment_rotation应该是让parent指向node
然后parent再指向node(node已经是parent了)
tmp指向node的右子树(相当于回到一开始的状态)
DTX:
case 3
tmp是p的右边 放到g的左子树
g放到p的右边
如果tmp有的话, 作为叶子就变黑
__rb_rotate_set_parents可能就是看看要不要把p变红
augment_rotation应该是让gparent指向parent