給定一個鏈表,刪除鏈表的倒數第 n 個節點,而且返回鏈表的頭結點。spa
示例:code
給定一個鏈表: 1->2->3->4->5, 和 n = 2. 當刪除了倒數第二個節點後,鏈表變爲 1->2->3->5.
說明:blog
給定的 n 保證是有效的。rem
# Definition for singly-linked list. class ListNode: def __init__(self, x): self.val = x self.next = None class Solution: def removeNthFromEnd(self, head, n): """ :type head: ListNode :type n: int :rtype: ListNode """ tmp = head cnt = 0 while tmp: cnt+=1 tmp = tmp.next # print(cnt) ans = ListNode(-1) tmp = ans for _ in range(cnt-n): tmp.next = ListNode(head.val) tmp = tmp.next head = head.next head = head.next while head: tmp.next = ListNode(head.val) tmp = tmp.next head = head.next return ans.next