Io farei:
Da invocare con:codice:public Nodo inversione (Nodo prev, Nodo n) { Nodo next_t = n.next; n.next = prev; return next_t != null ? inversione (n, next_t) : n; }
head = inversione (null, head);
L'unico caso particolare è che non deve essere invocato se 'head' è null (=nessun nodo) ma si tratta solo di mettere prima un test.