Det er vanlig å trenge å reversere en lenket liste , men det kan være vanskelig å gjøre det riktig . En av de enkleste løsningene er å iterere gjennom løkken , snu hver pekeren . Dette pseudokode viser hvordan du utfører denne prosessen mens du holder styr på de nødvendige variablene . Den pseudokode er generisk nok til at du bør være i stand til å tilpasse den til hva språket ditt kode er i. Instruksjoner
en
Sjekk for enkle edge tilfeller. Hvis hodet pekeren er null, er listen tom og ingen jobb som må gjøres . Hvis hodet neste pekeren er null, er det bare ett element i listen, så vend det gjør ingenting .
Hvis hode = null deretter returnif head- > neste = null deretter tilbake
2
Initialiser tre pekere : forrige , nåværende og neste år. "Forrige " og " dagens" skal peke på hodet node i listen. "Next" skal peke på den andre noden ved å se på pekeren i hodet node
pekeren forrige = hode ; . Pekeren current = hode ; markøren ved siden = head- > neste ;
3
Sett hodet node neste pekeren til null . Hodet node vil bli den siste noden i listen , så det blir ingen noder etter det .
Head- > neste = null
4
Loop gjennom listen reversere retning av pekere . De tre pekere initialisert tidligere brukes til å holde styr på den aktuelle posisjonen i listen.
Mens neste ! = Null //A null neste pekeren betyr at vi har nådd slutten av listcurrent = neste //Advance gjeldende pointernext = current- > neste //Advance neste pointercurrent - > neste = forrige //Point gjeldende node til forrige node, reversere linkprev = strøm //Advance den siste pointerend mens
5
Point hodet variabel på listen sin nye leder .
hode = strøm