Det är vanligt att behöva vända en länkad lista , men det kan vara svårt att göra det ordentligt . Ett av de enklaste lösningarna är att iterera genom öglan , vända varje pekare . Denna pseudokod visar hur du utför denna process samtidigt hålla koll på de nödvändiga variablerna . Pseudokoden är generiska nog att du ska kunna anpassa den till vilket språk din kod är i. Instruktioner
1
Kontrollera för enkla kant fall . Om framvisaren är null , är listan tom och inget arbete som behöver göras . Om huvudet nästa pekare är null , det finns bara ett element i listan , så vända det gör ingenting .
Om huvudet = null sedan returnif head - > next = null sedan tillbaka
2
initiera tre pekare : prev , nuvarande och nästa . " Föregående " och " ström " ska peka på huvudet nod i listan . " Next " ska peka på den andra noden genom att titta på pekaren i huvudet nod
pekaren prev = huvud ; . Pekare ström = huvud , pekare nästa = huvud - > next ;
Sida 3
Ställ huvudet nodens nästa pekare till null . Huvudet nod kommer att bli den sista noden i listan , så det blir inga noder efter det .
Huvud - > next = null
4
Loop genom listan vända den riktning pekare . De tre pekare initierade tidigare används för att hålla reda på den aktuella positionen i listan .
Medan nästa ! = Null //A null nästa pekare betyder att vi har kommit till slutet av den listcurrent = nästa //Advance aktuell pointernext = ström - > next //Advance nästa pointercurrent - > next = prev //Point aktuell nod till föregående noden , vända linkprev = ström //tidigarelägga sista pointerend medan
5
Point huvudet variabeln på listans ny chef .
huvud = nuvarande Addera