Det är vanligt att behovet av att 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 igenom öglan , vända varje pekare . Detta pseudokod visar hur du utför denna process och samtidigt hålla koll på de nödvändiga variablerna . Den pseudokod är generisk nog att du ska kunna anpassa den till vilket språk din kod är i.
1 .
Kontrollera enkel kant fall . Om huvudet pekaren är null , är listan tom och inget arbete 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 återvända
om huvud-> next=null . återvända
2
Initiera tre tips: prev , nuvarande och kommande . " Föregående " och " nuvarande " ska peka på huvudet noden i listan . "Nästa " ska peka på den andra noden genom att titta på pekaren i huvudet noden
pekaren prev=huvud .
pekaren nuvarande=huvud ;
pekaren nästa=huvud-> nästa .
3
Ställ huvudnoden nästa pekare till null . Huvudet nod kommer att bli den sista noden i listan , så det blir inga noder efter det .
huvudet -> next=null
4 .
Loop igenom listan vända riktningen för pekare . De tre pekare tidigare initierad används för att hålla koll på den aktuella positionen i listan .
medan nästa !=null //En null nästa pekare betyder att vi har nått slutet av listan
nuvarande=nästa //Advance aktuell pekaren
nästa=nuvarande -> Nästa //Advance nästa pekaren
nuvarande -> next=föregående //Point nuvarande nod till föregående nod , backning länken
prev=nuvarande //Advance de senaste pekaren
slutet medan
5 .
Point huvudet variabeln på listans nya chef .
huvudet=nuvarande
Previous:nothing Next:hur du ändrar ett skript filnamn