code: private Node<T> removeMax(Node<T> h, boolean updateLast) { 
          if (h.left != null && h.left.red)
              h = rotateRight(h);
  
          if (h.right == null)
              return null;
  
          if (!h.right.red && (h.right.left == null || !h.right.left.red))
              h = moveRedRight(h);
  
          h.right = removeMax(h.right, updateLast);
          if (h.right == null && updateLast)
          	last = h;
          return balance(h);
      }
docs: delete the key-value pair with the maximum key rooted at h