チェーンテーブルの最後からN番目のノードpython実装を削除
1037 ワード
チェーンテーブルの最後からN番目のノードを削除
チェーンテーブルが与えられ、チェーンテーブルの最後からn番目のノードが削除され、チェーンテーブルのヘッダノードが返される.
例:
: 1->2->3->4->5, n = 2.
, 1->2->3->5.
説明:
与えられたn保証は有効である.
ステップ:
スキャンを使って実現してみてもいいですか?
2つのチェーンテーブルが確立され、l 1は最初のノードからn番目のノードにアクセスし、その後、l 1とl 2は同時にスキャンされ、l 1がチェーンテーブルの最後にスキャンされると、l 2は最後からn番目のノードになる.
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution(object):
def removeNthFromEnd(self, head, n):
"""
:type head: ListNode
:type n: int
:rtype: ListNode
"""
res = ListNode(0)
res.next = head
l1 = res
l2 = res
for i in range(n):
l1 = l1.next
while l1.next:
l1 = l1.next
l2 = l2.next
l2.next = l2.next.next
return res.next