Die Gesamtidee besteht darin, den vorderen Zeiger zunächst n Schritte bewegen zu lassen und dann den vorderen und hinteren Zeiger gemeinsam zu bewegen, bis der vordere Zeiger das Ende erreicht.
Zuerst den Vorwärtszeiger einrichten. Der Vorwärtszeiger ist ein kleiner Trick, der in Frage 2 erklärt wird. und der Rückzeiger ist der zweite, beide sind gleich pre
First bewegt sich zuerst n Schritte vorwärts, und dann bewegen sich First und Second gemeinsam vorwärts Am Ende ist die Position des zweiten zufällig der vorherige Knoten des n-ten Knotens vom letzten.
Java-Code
class Solution { public ListNode removeNthFromEnd(ListNode head, int n) { ListNode pre = new ListNode(0); pre.next = head; ListNode first = pre; ListNode second = pre; while (n>0){ first= first.next; n--; } while (first.next != null){ first=first.next; second=second.next; } second.next = second.next.next; return pre.next; } }
Das obige ist der detaillierte Inhalt vonSo löschen Sie den N-ten Knoten aus der letzten verknüpften Liste in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!