知識點:鍊錶
題目鏈結
題目描述
給定乙個鍊錶,刪除鍊錶的倒數第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,得出刪除節點的前...