code: private TreeNode<K> combine(TreeNode<K> x, TreeNode<K> y) {
          TreeNode<K> z = new TreeNode<K>();
          z.left = x;
          z.right = y;
          z.rank = x.rank + 1;
          sift(z);
          return z;
      }
docs: Combine two trees into a new tree.
  
  @param x
  the first tree
  @param y
  the second tree
  @return the combined tree