給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。
示例:給定乙個鍊錶: 1->2->3->4->5, 和 n = 2.
當刪除了倒數第二個節點後,鍊錶變為 1->2->3->5.
說明:給定的 n 保證是有效的。
高階:你能嘗試使用一趟掃瞄實現嗎?
class
solution
//cnt = n - cnt;//寫反了
cnt = cnt - n;
if(cnt <0)
return
null
;//now = head;注意now 應當從fake開始
//另外只有從fake開始,才正好移動cnt步,從head開始則為cnt - 1;
now = fake;
for(
int i =
0; i < cnt; i++
) now.next = now.next.next;
return fake.next;
}}
class
solution
low.next = low.next.next;
return fake.next;
}}
19 刪除鍊錶的倒數第 N 個結點
前言 一 題目描述 二 解題思路總結 簡單記錄一下答案和思路。給你乙個鍊錶,刪除鍊錶的倒數第 n 個結點,並且返回鍊錶的頭結點。高階 你能嘗試使用一趟掃瞄實現嗎?示例 1 輸入 head 1,2,3,4,5 n 2 輸出 1,2,3,5 示例 2 輸入 head 1 n 1 輸出 示例 3 輸入 h...
19 刪除鍊錶的倒數第 N 個結點
給你乙個鍊錶,刪除鍊錶的倒數第 n 個結點,並且返回鍊錶的頭結點。高階 你能嘗試使用一趟掃瞄實現嗎?示例 1 輸入 head 1,2,3,4,5 n 2 輸出 1,2,3,5 示例 2 輸入 head 1 n 1 輸出 示例 3 輸入 head 1,2 n 1 輸出 1 鍊錶中結點的數目為 sz 1...
19 刪除鍊錶的倒數第 N 個結點
題目大意 就是刪除其中的倒數第k個節點!思路 自己想的辦法是使用快慢指標來解決的,然後使用乙個額外的指標來記錄當前需要被刪除的節點的前乙個節點,但是實際上操作難度增加啦!只需要讓其中的fast指標少走一步即可!這樣的話slow指標當好就是到達了其中的需要被刪除的前乙個節點。如下 definition...