1;根节点和空节点为黑色
2;红色节点的子阶段为黑色节点
3;涉及到的节点:新增节点(默认红色)或者当前节点,父节点,爷爷节点,父节点的兄弟节点(爷爷节点的另一个子节点),新增节点的兄弟节点(父节点的另一个子节点),新增节点或者当前节点(默认红色)的子节点
4;父节点颜色为黑色不进行颜色变化和旋转(节点不重组)
5;父节点为红色,父节点的兄弟节点(爷爷节点的另一个子节点)也为红色,则只进行颜色的重组:爷爷节点变为红色(如果是根节点默认为黑色),父节点和父节点的兄弟节点(爷爷节点的另一个子节点)变为黑色。
6;父节点为红色,父节点的兄弟节点(爷爷节点的另一个子节点)也为黑色,新增节点(默认红色)或者当前节点的子节点在爷爷节点的左分支,
6.1;又在父节点的右节点,则父节点进行左旋转,
6.1.1;左旋转后的节点重组:新增节点(默认红色)或者当前节点===》父节点,新增节点或者当前节点(默认红色)的右子节点===》父节点左节点,父节点===》新增节点(默认红色)或者当前节点的左节点。
走旋转重组颜色重组:爷爷节点为红色,新增节点(默认红色)或者当前节点为黑色
未做旋转的颜色重组:爷爷节点为红色,父节点为黑色
右旋转爷爷节点
7;父节点为红色,父节点的兄弟节点(爷爷节点的另一个子节点)也为黑色,新增节点(默认红色)或者当前节点的子节点在爷爷节点的右分支,
7.1;又在父节点的左节点,则父节点进行右旋转,
7.1.1;右旋转后的节点重组:新增节点(默认红色)或者当前节点===》父节点,新增节点或者当前节点(默认红色)的右子节点===》父节点左节点,父节点===》新增节点(默认红色)或者当前节点的右节点。
走旋转重组颜色重组:爷爷节点为红色,新增节点(默认红色)或者当前节点为黑色
未做旋转的颜色重组:爷爷节点为红色,父节点为黑色
左旋转爷爷节点