思路:
定义快慢两个指针,快指针始终比慢指针多走n+1步,遍历n次,将快指针抵达链表的尾部,再对慢指针走到的地方进行更新到n+1处,从而达到删除第n个节点的目的
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
class Solution:
def swapPairs(self, head: ListNode,n:int) -> ListNode:
dunmy_head=ListNode(0,head)
'''创建快慢指针将其初始化为虚拟头节点'''
slow=fast=dunmy_head
'''快指针始终比慢指针多走n+1步'''
for i in range(n+1):
fast=fast.text
'''对fast指针进行遍历使快指针抵达链表尾部'''
while fast:
slow=slow.next
fast=fast.next
'''将第n-1个的指针值直接指向n+1,从而达到删除第N个节点的目的'''
slow.next=slow.next.next
return dunmy_head.next