É comum a necessidade de reverter uma lista ligada , mas pode ser difícil de fazê-lo corretamente . Uma das soluções mais simples é para percorrer o circuito , revertendo cada ponteiro. Este pseudocódigo mostra como realizar este processo , mantendo o controle das variáveis necessárias . O pseudocódigo é genérico o suficiente para que você deve ser capaz de adaptá-lo a qualquer língua o seu código está dentro Instruções 
 1 
 Verificar casos de borda simples. Se o ponteiro cabeça é nulo, a lista está vazia e nenhum trabalho precisa ser feito . Se ao lado do ponteiro da cabeça é nula , não é apenas um elemento na lista, assim invertendo ele não faz nada . 
 
 Se a cabeça = null então returnif cabeça - > next = null então retornar 
 2 
 Inicializar três pontos : próximo , atuais e próximos . "Anterior " e " atual " deve apontar para o nó cabeça da lista . "Next" deve apontar para o segundo nó , olhando para o ponteiro no nó principal 
 
 ponteiro prev = cabeça ; . Atual ponteiro = cabeça ; ponteiro next = cabeça -> next; 
 
 3 
 Situado junto ponteiro do nó principal como nulo. O nó principal será o último nó na lista, assim não haverá nenhum nó depois. 
 
 Cabeça - > next = null 
 4 
 loop através da lista de reverter a sentido dos ponteiros . Os três ponteiros inicializados anteriormente são utilizados para acompanhar a posição atual na lista. 
 
 Enquanto seguinte! = Null //A próxima ponteiro nulo significa que chegamos ao final do próximo listcurrent = //Adiantamento o pointernext atual = atual -> seguinte //Adiantamento a próxima pointercurrent -> next = anterior //Aponte o nó atual para o nó anterior , revertendo a linkprev = corrente //Adiantamento a última pointerend enquanto 
 5 
 Aponte a variável cabeça no novo chefe da lista. 
 
 cabeça = corrente