class ListNode:
def __init__(self, x):
self.val = x
self.next = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# @param head ListNode类
# @return ListNode类
#迭代
# class Solution:
# def swapPairs(self , head: ListNode) -> ListNode:
# write code here
#递归终止条件
# if not head or not head.next:
# return head
# new_head = head.next
# head.next = self.swapPairs(new_head.next) #递归调用函数
# new_head.next = head
# return new_head
#递归
class Solution:
def swapPairs(self , head: ListNode) -> ListNode:
prev = ListNode(0)
prev.next = head
#结束后输出的头结点
new_head = prev
while prev.next and prev.next.next:
Node1 = prev.next
Node2 = prev.next.next
prev.next = Node2
Node1.next = Node2.next
Node2.next = Node1
prev = Node1
return new_head.next