Facendo uno scambio dovresti riuscirci
codice:
struct Nodo
{
   /*...*/
   struct Nodo *next;
} *testa;

struct Nodo *Scambia () 
{
   struct Nodo *temp = testa;
   struct Nodo *temp2 = NULL;
   while (temp)
      {
       struct Nodo *appoggio = temp2;
       temp2 = temp;
       temp = appoggio;
       temp = temp -> next;
       }
   return temp2;
}
La funzione Scambia dovrebbe ritornare la nuova testa ...
L'ho buttata giù così, non so neanche se funziona, fai delle prove perché io non ne ho il tempo...