What is the polynomial time reduction between these two Hamiltonian cycle problems?
First the reduction from P2 to P1 is easy cause if you can decide whether there is one cycle you can also decide whether there is at least one cycle. The other way around is more tricky.
Notice that P1 can be solved in polynomial time if we have an oracle for P2 (an oracle for P2 means that we can use a subroutine that solves P2).
algorithm for P1 with input G = (V,E):
  E' = {} # edges of &quot;Hamilton Cycle&quot;
  run subroutine for P2 on G
  if there is no Ham. Cycle:
    report that there is no Ham. Cycle
  for e in E:
    run P2 on (V,E - {e})
    if (V,E - {e}) contains &quot;Hamilton Cycle&quot;:
      E &lt;- E - {e}   # remove e
    else:
      E' &lt;- E' + {e} # add e to cycle
  return E'

It uses the procedure for P2 $O(|E|)$ times, thus we obtained a polynomial reduction.