删除修复操作的四种情况:
1.待删除的节点的兄弟节点是红色节点
2.待删除的节点的兄弟节点是黑色的节点,且兄弟节点的子节点都是黑色的
3.待调整的兄弟节点是黑色的节点,且兄弟节点的左子树是红色的,右节点是黑色的(兄弟节点在右边),如果兄弟节点在左边的话,就是兄弟节点的右子节点是红色的,左节点是黑色的。
4.待调整的节点的兄弟节点是黑色的节点,且右子节点是红色的(兄弟节点在右边),如果兄弟节点在左边,则就是对应的就是左节点是红色的。
代码实现:
public void remove(T data){
if(this.root == null)
return;
RBNode<T> cur = this.root;
while(cur !=