while (x != root && colorOf(x) == Entry.BLACK) { if (x == leftOf(parentOf(x))) { Entry sib = rightOf(parentOf(x)); if (colorOf(sib) == Entry.RED) { setColor(sib, Entry.BLACK); setColor(parentOf(x), Entry.RED); if (colorOf(leftOf(sib)) == Entry.BLACK && colorOf(rightOf(sib)) == Entry.BLACK) { setColor(sib, Entry.RED); x = parentOf(x); if (colorOf(rightOf(sib)) == Entry.BLACK) { setColor(leftOf(sib), Entry.BLACK); setColor(sib, Entry.RED); setColor(sib, colorOf(parentOf(x))); setColor(parentOf(x), Entry.BLACK); setColor(rightOf(sib), Entry.BLACK); if (colorOf(sib) == Entry.RED) { setColor(sib, Entry.BLACK); setColor(parentOf(x), Entry.RED); if (colorOf(rightOf(sib)) == Entry.BLACK && colorOf(leftOf(sib)) == Entry.BLACK) { setColor(sib, Entry.RED); x = parentOf(x);
while (x != root && colorOf(x) == Entry.BLACK) { if (x == leftOf(parentOf(x))) { Entry sib = rightOf(parentOf(x)); if (colorOf(sib) == Entry.RED) { setColor(sib, Entry.BLACK); setColor(parentOf(x), Entry.RED); if (colorOf(leftOf(sib)) == Entry.BLACK && colorOf(rightOf(sib)) == Entry.BLACK) { setColor(sib, Entry.RED); x = parentOf(x); if (colorOf(rightOf(sib)) == Entry.BLACK) { setColor(leftOf(sib), Entry.BLACK); setColor(sib, Entry.RED); setColor(sib, colorOf(parentOf(x))); setColor(parentOf(x), Entry.BLACK); setColor(rightOf(sib), Entry.BLACK); if (colorOf(sib) == Entry.RED) { setColor(sib, Entry.BLACK); setColor(parentOf(x), Entry.RED); if (colorOf(rightOf(sib)) == Entry.BLACK && colorOf(leftOf(sib)) == Entry.BLACK) { setColor(sib, Entry.RED); x = parentOf(x);
while (x != root && colorOf(x) == Entry.BLACK) { if (x == leftOf(parentOf(x))) { Entry sib = rightOf(parentOf(x)); if (colorOf(sib) == Entry.RED) { setColor(sib, Entry.BLACK); setColor(parentOf(x), Entry.RED); if (colorOf(leftOf(sib)) == Entry.BLACK && colorOf(rightOf(sib)) == Entry.BLACK) { setColor(sib, Entry.RED); x = parentOf(x); if (colorOf(rightOf(sib)) == Entry.BLACK) { setColor(leftOf(sib), Entry.BLACK); setColor(sib, Entry.RED); setColor(sib, colorOf(parentOf(x))); setColor(parentOf(x), Entry.BLACK); setColor(rightOf(sib), Entry.BLACK); if (colorOf(sib) == Entry.RED) { setColor(sib, Entry.BLACK); setColor(parentOf(x), Entry.RED); if (colorOf(rightOf(sib)) == Entry.BLACK && colorOf(leftOf(sib)) == Entry.BLACK) { setColor(sib, Entry.RED); x = parentOf(x);