Invertir Lista

Entradas Archivos Wallpaper ASCCI Problemas

Invertir lista ligada

Este problema consisten en invertir una lista ligada

Solucion


 class Solution {
 public:
 ListNode* reverseList(ListNode* head) {
 ListNode* final = head;
 ListNode* inicio = NULL;

 while (final) {
 ListNode* sig = final->next;
 final->next = inicio;
 inicio = final;
 final = sig;
 }

 return inicio;
 }
 };
 

En este problema creamos un nodo que apunte al ultimo nodo agregado, este se va a llamar final y otro que sea el nodo al cual final esta apuntando, mientras que el final no sea un valor nulo, creamos un nuevo nodo que sea el que sigue en la lista en su orden original, este se llama inicio pues sera el inicio de la nueva lista, entonces al final lo apuntamos al incio, y luego volvemos al inicio el primer nodo en la nueva lista y final sigue siendo el ultimo nodo en la lista original.