96 {
97 while (
z->parent !=
nullptr &&
z->parent->parent !=
nullptr &&
z->parent->color ==
RED) {
98 if (
z->parent ==
z->parent->parent->left) {
99 RBNode*
y =
z->parent->parent->right;
100 if (
y !=
nullptr &&
y->color ==
RED) {
103 z->parent->parent->color =
RED;
104 z =
z->parent->parent;
105 } else {
106 if (
z ==
z->parent->right) {
109 }
111 z->parent->parent->color =
RED;
113 }
114 } else {
115 RBNode*
y =
z->parent->parent->left;
116 if (
y !=
nullptr &&
y->color ==
RED) {
119 z->parent->parent->color =
RED;
120 z =
z->parent->parent;
121 } else {
122 if (
z ==
z->parent->left) {
125 }
127 z->parent->parent->color =
RED;
129 }
130 }
131 }
133 }
void rotateRight(RBNode *x)
void rotateLeft(RBNode *x)