leetcode19 刪除鍊錶的倒數第N個節點

2021-09-24 20:30:47 字數 707 閱讀 6314

給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。

示例:給定乙個鍊錶: 1->2->3->4->5, 和 n = 2.

當刪除了倒數第二個節點後,鍊錶變為 1->2->3->5.

我們注意到這個問題可以容易地簡化成另乙個問題:刪除從列表開頭數起的第 (l - n + 1)(l−n+1) 個結點,其中 ll 是列表的長度。只要我們找到列表的長度 ll,這個問題就很容易解決。

演算法首先我們將新增乙個啞結點作為輔助,該結點位於列表頭部。啞結點用來簡化某些極端情況,例如列表中只含有乙個結點,或需要刪除列表的頭部。在第一次遍歷中,我們找出列表的長度 ll。然後設定乙個指向啞結點的指標,並移動它遍歷列表,直至它到達第 (l - n)(l−n) 個結點那裡。我們把第 (l - n)(l−n) 個結點的 next 指標重新鏈結至第 (l - n + 2)(l−n+2) 個結點,完成這個演算法。

/**

* definition for singly-linked list.

* public class listnode

* }*/class

solution

first=dummy;

while

(length-n>=0)

first.next=first.next.next;

return dummy.next;

}}

LeetCode 19 鍊錶(160)

1 如圖,鍊錶是一種非常常用的資料結構 煉表頭 指向第乙個鍊錶結點的指標 鍊錶結點 鍊錶中的每乙個元素,包括 1 當前結點的資料,2 下乙個結點的位址 鍊錶尾 不再指向其他結點的結點,其位址部分放乙個null,表示鍊錶到此結束。2 鍊錶可以動態地建立 動態地申請記憶體空間 int pint new ...

鍊錶 LeetCode19刪除鍊錶中的第N個節點

給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。示例 給定乙個鍊錶 1 2 3 4 5,和 n 2.當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5.說明 給定的 n 保證是有效的。高階 你能嘗試使用一趟掃瞄實現嗎?分析 看到這個問題,第一反應,先求長度,再找節點,看一下高階,有...

Leetcode 19 刪除鍊錶的第N個節點

給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。示例 給定乙個鍊錶 1 2 3 4 5,和 n 2.當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5.說明 給定的 n 保證是有效的。高階 你能嘗試使用一趟掃瞄實現嗎?兩次遍歷的演算法思路 第一遍歷從頭結點開始來計算鍊錶的長度,然後...