human
Solve in Python:
Given a linked list, swap every two adjacent nodes and return its head.

Example:

Given 1->2->3->4, you should return the list as 2->1->4->3.

Note:

       Your algorithm should use only constant extra space.
       You may not modify the values in the list's nodes, only nodes itself may be changed.

Can you provide a the Python program you requested?
assistant
#Here is the Python program you requested.

# Definition for singly-linked list.
 # class ListNode:
 #     def __init__(self, x):
 #         self.val = x
 #         self.next = None
 
 class Solution:
     def swapPairs(self, head):
         """
         :type head: ListNode
         :rtype: ListNode
         """
         
         def swapTwo(head):
             if not head.next:
                 return head
             elif not head.next.next:
                 tmp = head.next
                 head.next = None
                 tmp.next = head
                 return tmp
             else:
                 tmp = head.next
                 head.next = swapTwo(tmp.next)
                 tmp.next = head
                 return tmp
         
         if not head:
             return head
         else:
             return swapTwo(head)