# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def swapPairs(self, head: Optional[ListNode]) -> Optional[ListNode]:
if head == None or head.next == None:
return head
r = head
prev = None
while r != None:
firstNode = r
secondNode = r.next
if secondNode == None:
break
nextNode = secondNode.next
if prev == None:
head = secondNode
firstNode.next = nextNode
secondNode.next = firstNode
if prev != None:
prev.next = secondNode
prev = firstNode
r = nextNode
return head