Heim  >  Artikel  >  Java  >  Java-Codebeispiel zur Implementierung einer umgekehrt verknüpften Liste

Java-Codebeispiel zur Implementierung einer umgekehrt verknüpften Liste

黄舟
黄舟Original
2017-10-17 10:11:111479Durchsuche

In diesem Artikel wird hauptsächlich das Codebeispiel für die Implementierung einer umgekehrt verknüpften Liste in der Java-Sprache vorgestellt. Der Herausgeber findet es ziemlich gut, daher werde ich es hier als Referenz für Freunde teilen, die es benötigen.

Problembeschreibung

Definieren Sie eine Funktion, die den Kopfknoten einer verknüpften Liste eingibt, die verknüpfte Liste umkehrt und den Kopfknoten der umgekehrten verknüpften Liste ausgibt. Die verknüpften Listenknoten lauten wie folgt:


public class ListNode {
  int val;
  ListNode next = null;
  ListNode(int val) {
    this.val = val;
  }
}

Idee 1:

Um die verknüpfte Liste umzukehren, für Knoten i , wir Um es auf seinen Vorgänger zu verweisen, müssen wir den Vorgängerknoten speichern. Wenn wir gleichzeitig den Nachfolger von i neu zugewiesen haben, können wir ihn nicht finden Ich muss meinen Nachfolger retten.

Code:


public ListNode ReverseList(ListNode head) {
    if(head == null){
      return null;
    }
    ListNode rHead = null;
    ListNode prior = null;//store prior
    ListNode q = head;//store current
    while(q != null){
      ListNode next = q.next;//store the next
      if(next == null){
        rHead = q;
      }
      q.next = prior;
      prior = q;
      q = next;
    }
    return rHead;
  }

Idee 2:

Verwenden Sie die Idee der Rekursion (I Ich habe noch nicht darüber nachgedacht, denn wenn Rekursion verwendet wird, sollte es jedes Mal sein: der erste Knoten der verknüpften Liste – der Endzeiger der durch die Rekursion zurückgegebenen verknüpften Liste, aber in diesem Fall kann der umgekehrte Kopfzeiger nicht sein erhalten.) Lassen Sie uns später darüber nachdenken.

Zusammenfassung

Das obige ist der detaillierte Inhalt vonJava-Codebeispiel zur Implementierung einer umgekehrt verknüpften Liste. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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