The (left|right)Rotate might have changed the parent, so it needs to be
reacquired after it.
} else {
if (node == parent->getRight()) {
node = parent;
- parent = node->getParent();
leftRotate(root, node);
+ parent = node->getParent();
}
parent->color_ = RBNode<T>::BLACK;
parent->getParent()->color_ = RBNode<T>::RED;
} else {
if (node == parent->getLeft()) {
node = parent;
- parent = node->getParent();
rightRotate(root, node);
+ parent = node->getParent();
}
parent->color_ = RBNode<T>::BLACK;
parent->getParent()->color_ = RBNode<T>::RED;