NC53 刪除鍊錶的倒數第n個節點

2021-10-21 13:52:00 字數 966 閱讀 8389

知識點:鍊錶

題目鏈結

題目描述

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

例如,給出的鍊錶為:1->2->3->4->5, n= 2.

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

備註:題目保證n一定是有效的

請給出請給出時間複雜度為o(n)的演算法

示例1

輸入:,2

輸出:2

解題思路

如何定位到倒數第n個結點比較簡單可以採用快慢指標 快指標先跑但是這裡需要刪除 我們要定位到倒數n個節點的前面乙個 也就是倒數n+1個結點

此外我們要注意如果刪除的是 頭結點我們可以新增乙個哨兵節點 放到head前面然後還是找到倒數第n個結點 實際上 找到的是倒數n+1個節點

把這個結點的後面那個節點刪除最後返回哨兵結點的後面 能很好的處理刪除頭節點的問題

**

#include

"cheader.h"

struct listnode };

class

solution

cur-

>next = cur-

>next-

>next;

return node-

>next;}}

;int

main()

return0;

}

今天也是愛zz的一天!

牛客NC53 刪除鍊錶的倒數第n個節點

給定乙個鍊錶,刪除鍊錶的倒數第n個節點並返回鍊錶的頭指標 例如,給出的鍊錶為 1 2 3 4 5,n 2.刪除了鍊錶的倒數第n個節點之後,鍊錶變為1 2 3 5.備註 題目保證n一定是有效的 請給出請給出時間複雜度為o n 的演算法 1.雜湊儲存,key為序號,value為指向該位置的指標 stru...

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

給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。示例 給定乙個鍊錶 1 2 3 4 5,和 n 2.當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5.說明 給定的 n 保證是有效的。高階 你能嘗試使用一趟掃瞄實現嗎?雙指標,當遍歷指標前進n個時,後面乙個指標指向頭部,這樣保證了當...

刪除鍊錶倒數第N個節點

1.問題 給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。示例 給定乙個鍊錶 1 2 3 4 5,和 n 2.當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5.2.演算法 暴力破解法 先計算得出鍊錶的長度m,然後將鍊錶長度和所給倒數字置相減,即loc m n 1,得出刪除節點的前...