LeetCode 热题 HOT 100之删除链表的倒数第 N 个结点
题目:给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。
方案:使用两个指针同时对链表进行遍历,并且第二个节点比第一个节点靠后n+1个节点,这样第二个节点到最后位置时,第一个节点在倒数n+1位置。
class Solution:
def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:
prehead = ListNode(0)
prehead.next = head
slow = prehead
fast = head
for i in range(n):
fast = fast.next
while fast:
slow = slow.next
fast = fast.next
slow.next = slow.next.next
return prehead.next