Es común que tenga que invertir una lista encadenada , pero puede ser difícil de hacerlo bien . Una de las soluciones más simples es para recorrer el circuito , la inversión de cada indicador . Este pseudocódigo muestra cómo realizar este proceso , mientras que el seguimiento de las variables necesarias . El pseudocódigo es lo suficientemente genérico que debe ser capaz de adaptarse a cualquier idioma que su código es pulg Instrucciones
1
Comprobar casos extremos simples. Si el puntero de cabeza es nulo, la lista está vacía y no hay trabajo que hay que hacer . Si el indicador de siguiente de la cabeza es nulo , no es sólo un elemento en la lista , por lo que invertir no hace nada.
Si la cabeza = null entonces returnif cabeza - > siguiente = null luego regresar
2
Inicializar triples : anterior , actual y siguiente . " Anterior " y "actual" debe apuntar al nodo de cabecera de la lista. " Next" debe apuntar al segundo nodo mirando el puntero en el nodo principal
pointer
prev = cabeza ; . Puntero actual = cabeza ; puntero next = cabeza - > siguiente ;
Página 3
situado junto puntero del nodo principal en null. El nodo principal se convertirá en el último nodo de la lista, así que no habrá ningún nodo después de él.
Cabeza - > siguiente = null
4
Recorrer la lista de la inversión de la dirección de los punteros . Los tres punteros inicializados antes se utilizan para realizar un seguimiento de la posición actual en la lista.
Mientras próxima ! = Null //El siguiente puntero nulo significa que hemos llegado al final de la listcurrent = siguiente //Avance el pointernext actual = actual -> siguiente //Avanzar al siguiente pointercurrent - > siguiente = prev //Punto de nodo actual al nodo anterior , revirtiendo la linkprev = corriente //Avanzar en la última pointerend mientras
5
punto la variable cabeza de la lista de nuevo la cabeza .
cabeza = corriente