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

2021-08-30 15:14:12 字數 794 閱讀 9820

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

示例:

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

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

說明:

給定的 n 保證是有效的。

高階:你能嘗試使用一趟掃瞄實現嗎?

解法:看到這種鍊錶求倒數n的題就想到了用前後指標,類似的題目還有判斷鍊錶中是否存在環(快慢指標)。

主要的想法就是先用乙個指標front走n步後,另乙個指標back再從頭開始和front一起向前走,這樣當front到達鍊錶末尾的時候,back就停在倒數第n個節點上了。

為了刪除第n個節點,需要把第n-1個節點的next指標指向n->next,由於頭結點head沒有前節點,所以需要設定乙個dummyhead來指向head,這樣就可以處理類似於 鍊錶為 1,刪除倒數第1個節點,輸出結果為空的這種情況了。

/**

* definition for singly-linked list.

* struct listnode

* };

*/class

solution

while

(front-

>next)

listnode* temp=back-

>next-

>next;

back-

>next=temp;

return dummyhead-

>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 保證是有效的。高階 你能嘗試使用一趟掃瞄實現嗎?兩次遍歷的演算法思路 第一遍歷從頭結點開始來計算鍊錶的長度,然後...