Het is gebruikelijk om moeten een gelinkte lijst te keren , maar het kan moeilijk zijn om het goed te doen zijn. Een van de eenvoudigste oplossingen is het doorlopen van de lus , het omkeren van elke wijzer . Deze pseudocode laat zien hoe dit proces uit te voeren , terwijl het bijhouden van de noodzakelijke variabelen . De pseudocode is generiek genoeg dat je moet in staat zijn aan te passen aan de taal die uw code is inch Instructions Controleer 1 voor eenvoudige rand gevallen . Als de kop wijzer is null , is de lijst leeg en geen werk gedaan moet worden . Als volgende pointer het hoofd null is , is er slechts een element in de lijst, dus het omkeren van het doet niets . Als hoofd = null vervolgens returnif head - > volgende = null dan terug 2 initialiseren drie wijzers : vorige , huidige en volgende . " Vorige " en " huidige " moet wijzen op het hoofd knooppunt van de lijst . " Next " moet wijzen op de tweede knoop door te kijken naar de aanwijzer in het hoofd knooppunt pointer vorige = hoofd ; . Pointer current = head ; pijltje = head - > volgende ; Goedkope 3 Stel volgende pointer het hoofd knooppunt op null . Het hoofd knooppunt zal het laatste knooppunt in de lijst te worden , dus zullen er geen nodes na het. Head - > volgende = null Loop Goedkope 4 door de lijst omkeren van de richting van de wijzers . De drie wijzers eerder geïnitialiseerd worden gebruikt voor het bijhouden van de huidige positie in de lijst te houden . Terwijl volgende! = Null //A null volgende pointer betekent dat we het einde van de listcurrent = volgende //Advance hebben bereikt de huidige pointernext = stroom - > next //Vooraf de volgende pointercurrent - > volgende = prev //Point de huidige knooppunt naar het vorige knooppunt , het omkeren van de linkprev = huidige //Advance de laatste pointerend terwijl Punt 5 de kop variabele in de lijst met nieuwe hoofd . hoofd = huidige
|