給你乙個鍊錶,刪除鍊錶的倒數第 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 <= sz <= 30
0 <= node.val <= 100
1 <= n <= sz
leetcode官方**:
/**
* definition for singly-linked list.
* struct listnode
* listnode(int x) : val(x), next(nullptr) {}
* listnode(int x, listnode *next) : val(x), next(next) {}
* };
*/class solution
return length;
}listnode* removenthfromend(listnode* head, int n)
cur->next = cur->next->next;
listnode* ans = dummy->next;
delete dummy;
return ans;
}};
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 個結點
題目大意 就是刪除其中的倒數第k個節點!思路 自己想的辦法是使用快慢指標來解決的,然後使用乙個額外的指標來記錄當前需要被刪除的節點的前乙個節點,但是實際上操作難度增加啦!只需要讓其中的fast指標少走一步即可!這樣的話slow指標當好就是到達了其中的需要被刪除的前乙個節點。如下 definition...
19 刪除鍊錶的倒數第 N 個結點
題目 思路 一道經典的快慢指標問題,快指標先走n步,然後一起走,快指標走到最後乙個節點,慢指標就到了要被刪除的節點的前乙個節點。definition for singly linked list.class listnode def init self,val 0,next none self.va...