private void insertCase4(RBTreeNode<K, V> node) {
        //If we're the right child of our parent
        //and our parent is the left child of our grandparent
        if (node == node.parent.right && node.parent == node.grandparent().left) {
            //Then we want to perform a left rotation about the parent/
            rotateLeft(node.parent);
            node = node.left;
            //And the mirror image case:
        } else if (node == node.parent.left && node.parent == node.grandparent().right) {
            rotateRight(node.parent);
            node = node.right;
        }
        //Note: The above doesn't fix all properties
        insertCase5(node);
    }