E 'comune per necessità di invertire una lista collegata , ma può essere difficile da fare come si deve . Una delle soluzioni più semplici è quello di scorrere l' anello , invertendo ogni puntatore. Questo pseudocodice mostra come eseguire questo processo , mantenendo traccia delle variabili necessarie . Lo pseudocodice è abbastanza generico che si dovrebbe essere in grado di adattarsi a qualsiasi linguaggio il codice è dentro Istruzioni 
 1 
 Verifica per semplici casi limite . Se il puntatore di testa è nullo , la lista è vuota e nessun lavoro deve essere fatto . Se indicatore accanto al capo è nullo , c'è solo un elemento della lista , in modo da invertire non si fa nulla . 
 
 Se testa = null allora returnif testa - > next = null poi tornare 
 2 
 Inizializzare tre puntatori : prec , correnti e successivi. " Indietro " e "corrente" dovrebbero puntare al nodo della lista . "Avanti" deve puntare al secondo nodo , cercando in puntatore del nodo testa 
 puntatore 
 prev = testa ; . Corrente del puntatore = testa ; puntatore next = testa - > next ; 
 
 3 
 indicatore accanto al nodo di testa a null . Il nodo principale diventerà l'ultimo nodo della lista , quindi non ci saranno nodi dopo di esso. 
 
 Testa - > next = null 
 4 
 Loop attraverso la lista invertire la direzione dei puntatori . I tre puntatori inizializzati in precedenza vengono utilizzati per tenere traccia della posizione corrente nell'elenco . 
 
 Mentre accanto ! = Null //A nullo prossimo puntatore significa che abbiamo raggiunto la fine della prossima listcurrent = //Advance il pointernext corrente = current- > next //avanzare alla prossima pointercurrent - > next = prev //Point il nodo corrente al nodo precedente , invertendo il linkprev = corrente //Avanza l'ultimo pointerend mentre 
 5 
 punto la variabile testa alla nuova testa della lista . 
 
 testa = corrente