guarda io ho creato la funzione di inversione lista in questo modo. Dimmi se fa schifo o se può andare:

codice:
Num *Reverse(struct numeri *testa)
{
	struct numeri *aux, *x;
	aux = testa;
	x = aux;
	testa = testa->next;
	aux = testa;
	testa = testa->next;
	aux->next = x;
	x->next = NULL;
	while(testa->next != NULL){
		x = aux;
		aux = testa;
		testa = testa->next;
		aux->next = x;
	}
	testa->next = aux;
	return testa;
}
calcola che testa era il puntatore al primo elemento della lista, e dopo questa funzione diventa il puntatore al primo elemento della lista rovesciata. non ho usato una seconda lista, ma ho solo invertito tutti i puntatori ->next

ti piace fatto cosi?