Dieser Blog ist relativ einfach. Schauen Sie sich einfach die umgekehrte Reihenfolge der einzelnen verknüpften Listen an, wenn Sie es nicht verstehen.
Idee umgekehrte Ordnung
Nehmen wir nun an, es gibt eine verknüpfte Liste, die in umgekehrter Reihenfolge betrieben werden soll. Das erste, woran wir denken, ist, die Zeigerbeziehung umzukehren.
Tatsächlich ist es das. Der Blogger ist eine einzige verknüpfte Liste mit diesem Ziel.
Knoten pre = null; Knoten post = null; while (head! = Null) {post = head.Next; head.next = pre; vor = Kopf; Kopf = post;}Dies ist der Kern der umgekehrten Reihenfolge. Erklären wir Schritt für Schritt.
Zu Beginn werden Pre and Post auf null gesetzt. Dies ist notwendig, da nach der Codeausführung von Head.
Stellen Sie sich vor, am Ende der ursprünglichen Linkliste ist auch ein Null? Die Wahrheit hier ist die gleiche.
Zu diesem Zeitpunkt muss die Aktualisierung des ursprünglichen Kopfknotens auch den nächsten Schritt der umgekehrten Reihenfolge vorbereiten, und der Kopf wird natürlich zum ursprünglichen Kopf.
Entschuldigung, meine Hand zitterte und ich zog es falsch. Vielen Dank an alle. Das fünfte Mal im handgezeichneten Diagramm zeigt an, dass sich der Vorknoten an der Position des Knotens 5 befinden und keinen Kopf gibt.
Aus der Legende ist es nicht schwer zu erkennen, dass wir den Kopf immer wieder rückwärts bewegen und den Pre -Knoten gleichzeitig aktualisieren, um den Effekt der umgekehrten Reihenfolge zu erreichen.
Code
Paketliste; public class ReverSelist {public static void main (String [] args) {node head = neuer Knoten (1); int [] value = {2,3,4,5}; node temp = head; für (int i = 0; i <value.Length; i ++) {node node = new node (value [i]); temp.Next;} printlist (Kopf); // inverse die Reihenfolge der Ausgabe Eine einzelne verknüpfte Liste Head = Reverse (Head); Prinzipel (Kopf); // Umgekehrt den Kopf erneut = ReversesingLelist (Head); Prinzipliste (Kopf);} public static void printlist (Knotenkopf) {while (head! Head.Next;} System.out.println ();} öffentlicher statischer Knoten reverse (Knotenkopf) {Knoten pre = null; Knoten post = null; while (head! null; while (head!prüfen
Nach dem Testen ist die Codeausgabe korrekt.
1 2 3 4 5
5 4 3 2 1
1 2 3 4 5
Um zu verstehen, hier ist ein weiteres Beispiel:
/** * Java implementiert die umgekehrte Reihenfolge der einzelnen verknüpften Listen * @Author Administrator * */öffentliche Klasse Singlelinkedreverse {Klasse -Knoten {int data; node als nächst Slr.New Node (0); für (int i = 1; i <10; i ++) {Knoten p = Slr.New Node (i); Tail.Next = p; schwanz = p;} schwanz = Kopf; while (schwanz! while (head! p2;}}Testergebnisse:
0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 0
Zusammenfassen
Das obige ist der gesamte Inhalt dieses Artikels über das Code -Beispiel für die Verwendung von Java -Single -verknüpften Listen umgekehrter Auftrag. Ich hoffe, es wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!