In diesem Artikel wird hauptsächlich die Java-Programmierung vorgestellt, um das Drucken von Codebeispielen für verknüpfte Listen vom Ende bis zum Anfang zu implementieren. Der Herausgeber findet es ziemlich gut, daher werde ich es hier als Referenz für bedürftige Freunde teilen.
Problembeschreibung: Geben Sie den Kopfknoten einer verknüpften Liste ein und drucken Sie den Wert jedes Knotens vom Ende bis zum Kopf aus.
Definieren Sie zunächst die verknüpften Listenknoten
public class ListNode { int val; ListNode next = null; ListNode(int val){ this.val = val; } }
Idee 1: Diese Frage verwendet offensichtlich die Idee von Stapel, zuletzt im ersten Zum Beenden durchlaufen Sie zunächst die verknüpfte Liste und verschieben die Knotenwerte nacheinander in den Stapel. Zum Schluss platzen Sie den Stapel, nachdem Sie den Stapel durchlaufen haben.
public static Stack<Integer> printListReverse_Stack(ListNode listNode){ Stack<Integer> stack = new Stack<Integer>(); if(listNode != null){ ListNode p = listNode; while(p != null){ stack.add(p.val); p = p.next; } } return stack; }
Idee 2: Durchlaufen Sie die verknüpfte Liste direkt und fügen Sie die ArrayList der Reihe nach gemäß der Kopfeinfügungsmethode ein
public static ArrayList<Integer> printListFromTailToHead(ListNode listNode){//表头也存储元素 ArrayList<Integer> print = new ArrayList<Integer>(); if(listNode == null){ return print; } int add = 0; ListNode p = listNode; while(p != null){ print.add(0, p.val); p = p.next; } return print; }
Idee 3: Sie können die Idee der Rekursion (im Wesentlichen auch die Idee des Stapels) verwenden
public ArrayList<Integer> printListReversely_Recursively(ListNode listNode){ ArrayList<Integer> print = new ArrayList<Integer>(); if(listNode == null){ return print; } print.addAll(printListReversely_Recursively(listNode.next)); print.add(listNode.val); return print; }
Zusammenfassung
Das obige ist der detaillierte Inhalt vonBeispielanalyse der Java-Implementierung des Druckens verknüpfter Listen vom Ende bis zum Anfang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!