from os import pread


class Solution:
    def swapPairs(self, head: ListNode) -> ListNode:
        # write code here
        dummy = ListNode(0)
        dummy.next = head
        prev = dummy
        while prev.next and prev.next.next:
            # 定义当前要交换的两个节点
            first = prev.next
            second = first.next

            # 三步指针交换
            prev.next = second  # prev指向第二个节点
            first.next = second.next  # 第一个节点指向第三个节点(或None)
            second.next = first  # 第二个节点指向第一个节点

            # 移动prev到下一对的前一个位置(即刚交换完的第一个节点)
            prev = first

        return dummy.next