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 ...