首頁  >  文章  >  Java  >  Java怎麼刪除鍊錶的倒數第N個節點

Java怎麼刪除鍊錶的倒數第N個節點

WBOY
WBOY轉載
2023-04-28 15:52:141171瀏覽
解題思路
  1. 整體思路是讓前面的指標先移動n步,之後前後指標共同移動直到前面的指標到尾部為止。

  2. 首先設立預先指標pre,預先指標是一個小技巧,在第2題中進行了講解

  3. 設預先指標pre 的下一個節點指向head,設前指標為first,後指標為second,二者都等於pre

  4. first 先向前移動n步

  5. 之後first 和second 共同向前移動,此時二者的距離為n,當first 到尾部時,second 的位置恰好為倒數第n 個節點的上一個結點。

Java程式碼
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;
    }
}

以上是Java怎麼刪除鍊錶的倒數第N個節點的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除