Det er almindeligt at have behov for at vende en sammenkædet liste, men det kan være svært at gøre det ordentligt . En af de enkleste løsninger er at gentage gennem løkken , vende hver pointer . Denne pseudokode viser, hvordan du udfører denne proces og samtidig holde styr på de nødvendige variabler. Den pseudokode er generisk nok, at du bør være i stand til at tilpasse den til det sprog din kode er i. Instruktioner
1
Check for simple kant sager. Hvis hovedet pointer er null, listen er tom, og ingen arbejde der skal gøres . Hvis hovedet næste pointer er nul, er der kun ét element i listen , så vende det gør ingenting.
Om hovedet = null derefter returnif head -> next = null derefter vende tilbage
2
Initialiser tre pejlemærker : tidl. , nuværende og næste år. "Forrige " og " nuværende" skal pege på hovedknuden på listen. "Næste" skal pege på det andet knudepunkt ved at se på viseren i hovedet node
pointer prev = hoved, . Pointer strøm = hoved, pointer næste = head -> næste ;
3
Sæt hovedknuden næste pointer til null . Hovedet node bliver den sidste node i listen , så der vil ikke være nogen knuder efter det.
Head -> next = null
4
Loop gennem listen vende retning af pointerne . De tre pejlemærker initialiseret tidligere er brugt til at holde styr på den aktuelle position i listen .
Mens næste ! = Null //A null næste pointer betyder, at vi har nået slutningen af listcurrent = næste //Advance den aktuelle pointernext = aktuel -> næste //Advance næste pointercurrent -> next = forrige //Punkt den aktuelle node til den forrige node , vende linkprev = current //Advance sidste pointerend mens
5
Punkt hovedet variablen på listens nye leder .
head = aktuel