A parte qualche problema di sintassi, la logica e' corretta.

L'unica "rilievo" riguarda la linea

corrente = currentPtr->dato; // setta corrente con il campo dato del primo nodo

Essa e' inutile, in quanto il primo valore lo imposti appena entrato nel ciclo ... per il resto va bene ...