Heim > Java > javaLernprogramm > Hauptteil

Beispielanalyse der Java-Implementierung des Druckens verknüpfter Listen vom Ende bis zum Anfang

黄舟
Freigeben: 2017-10-16 09:51:59
Original
1362 Leute haben es durchsucht

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;
    }
  }
Nach dem Login kopieren

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;
  }
Nach dem Login kopieren

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;
  }
Nach dem Login kopieren

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;
  }
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage