code: public static <T> FibonacciHeap<T> merge(FibonacciHeap<T> one, FibonacciHeap<T> two) {
          /* Create a new FibonacciHeap to hold the result. */
          FibonacciHeap<T> result = new FibonacciHeap<T>();
  
          /* Merge the two Fibonacci heap root lists together.  This helper function
           * also computes the min of the two lists, so we can store the result in
           * the mMin field of the new heap.
           */
          result.mMin = mergeLists(one.mMin, two.mMin);
  
          /* The size of the new heap is the sum of the sizes of the input heaps. */
          result.mSize = one.mSize + two.mSize;
  
          /* Clear the old heaps. */
          one.mSize = two.mSize = 0;
          one.mMin = null;
          two.mMin = null;
  
          /* Return the newly-merged heap. */
          return result;
      }
docs: Given two Fibonacci heaps, returns a new Fibonacci heap that contains
  all of the elements of the two heaps.  Each of the input heaps is
  destructively modified by having all its elements removed.  You can
  continue to use those heaps, but be aware that they will be empty
  after this call completes.
  
  @param one The first Fibonacci heap to merge.
  @param two The second Fibonacci heap to merge.
  @return A new FibonacciHeap containing all of the elements of both
  heaps.