題目:
思路:一道經典的快慢指標問題,快指標先走n步,然後一起走,快指標走到最後乙個節點,慢指標就到了要被刪除的節點的前乙個節點。
#definition for singly-linked list.
#class listnode:
#def __init__(self, val=0, next=none):
#self.val = val
#self.next = next
class
solution:
def removenthfromend(self, head: listnode, n: int) ->listnode:
node =listnode(0)
node.next = head #
定義頭節點
fast =node
slow =node
for i in
range(n):
fast = fast.next #
快節點先走n步
while(fast.next!=none):#
直到快節點走到最後乙個,慢節點直接指向她的後繼節點的後繼節點
fast =fast.next
slow =slow.next
slow.next =slow.next.next
return node.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...