private void fixBeforeRemove(Node removed)
        {
            if (removed.color == RED) { return; }

            if (removed.left != null || removed.right != null) // It is not a leaf
            {
                // Color the child black
                if (removed.left == null) { removed.right.color = BLACK; }
                else { removed.left.color = BLACK; }
            }
            else { bubbleUp(removed.parent); }
        }