leetcode 19. チェーンテーブルの最後からN番目のノードを削除します(python 3)
3050 ワード
19.チェーンテーブルの最後からN番目のノードに与えられたチェーンテーブルを削除し、チェーンテーブルの最後からn番目のノードを削除し、チェーンテーブルのヘッダノードに戻る.
例:
チェーンテーブルが与えられる:1->2->3->4->5、およびn=2.
最後から2番目のノードを削除すると、チェーンテーブルは1->2->3->5になります.説明:
与えられたn保証は有効である.
ステップ:
スキャンを使って実現してみてもいいですか?
考え方:スナップポインタ
例:
チェーンテーブルが与えられる:1->2->3->4->5、およびn=2.
最後から2番目のノードを削除すると、チェーンテーブルは1->2->3->5になります.説明:
与えられたn保証は有効である.
ステップ:
スキャンを使って実現してみてもいいですか?
考え方:スナップポインタ
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:
slow = fast = head
for i in range(n): # N
fast = fast.next
if fast is None:# n
return head.next
while fast.next: #
fast = fast.next
slow = slow.next
slow.next = slow.next.next # N
return head