private Node fixUp(Node h) {
        if (isRedNode(h.right))
            h = rotateLeft(h);
        if (isRedNode(h.left) && isRedNode(h.left.left))
            h = rotateRight(h);
        if (isRedNode(h.left) && isRedNode(h.right))
            flipColors(h);
        return h;
    }