private void removeNodeWithoutChildren(Node u)
    {
        if (root == u)
        {
            root = null;
            return;
        }
        if (!u.isRed)   balanceOnRemoval(u);
        if (u.parent.left == u) u.parent.left = null;
        else if (u.parent.right == u)    u.parent.right = null;
        u.parent = null;
    }