声明:仅用于快速记忆,可能对于没了解过红黑树的同学不太友好
规则
- 每个节点非红即黑(废话~)
- 根节点都是黑色的
- 新插入的节点都为红色节点
- 插入黑色节点会违背黑色高度规则;
- 插入红色节点有一半的机会会违背连续红色节点规则,但是可以通过自平衡修补
- 从根节点到所有的叶子节点的路径会经过相同数量的黑色节点(黑色高度)
- 不可能有连续的红色节点
- 所有的空节点都是黑色的
自平衡
-
左旋:以某个结点作为支点(旋转结点),其右子结点变为旋转结点的父结点,右子结点的左子结点变为旋转结点的右子结点,左子结点保持不变。
-
右旋:以某个结点作为支点(旋转结点),其左子结点变为旋转结点的父结点,左子结点的右子结点变为旋转结点的左子结点,右子结点保持不变。
-
变色:结点的颜色由红变黑或由黑变红。