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

2021-09-02 10:10:49 字數 597 閱讀 6290

題目描述

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

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

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

這是乙個典型的利用雙指標法解題。首先讓指標first指向頭節點,然後讓其向後移動n步,接著讓指標sec指向頭結點,並和first一起向後移動。當first的next指標為null時,sec即指向了要刪除節點的前乙個節點,接著讓first指向的next指標指向要刪除節點的下乙個節點即可。注意如果要刪除的節點是首節點,那麼first向後移動結束時會為null,這樣加乙個判斷其是否為null的條件,若為null則返回頭結點的next指標。

此思路參照博主的,用筆在紙上演示確實妙,記錄一下。

/**

* definition for singly-linked list.

* struct listnode

* };

*/class solution

sec->next=sec->next->next;

return head;}}

;

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

給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。示例 給定乙個鍊錶 1 2 3 4 5,和 n 2.當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5.說明 給定的 n 保證是有效的。高階 你能嘗試使用一趟掃瞄實現嗎?我採取一次掃瞄來實現。1.定義兩個指標,令他們相隔n的距離,則前...

LeetCode打卡練習之刪除鍊錶的倒數第N個節點

這道題目也十分簡單,但是用的方法非常重要,在鍊錶操作中也有大應用。刪除鍊錶倒數第n個節點,可以使用快慢指標法,快指標先出發,到達n時慢指標出發,快指標到達終點時,慢指標就會到達倒數第n個節點。其實鍊錶很多情況下都可以用 運動學 知識來解題,比如同樣的取排序鍊錶中位數也可以讓快指標速度是慢指標兩倍。但...

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

給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。示例 給定乙個鍊錶 1 2 3 4 5,和 n 2.當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5.說明 給定的 n 保證是有效的。高階 你能嘗試使用一趟掃瞄實現嗎?題目鏈結 鍊錶倒數第 n 個節點就是正數的第 len n 個節點...