题目
把1–>2–>3–>4变成2–>1–>4–>3
解析
方法一:用递归调用
方法二:直接调换
注意:返回的是调换后的链表头结点
代码
1.递归调用
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
class Solution(object):
def swapPairs(self,head):
#使用递归调用
if not head or not head.next:
return head
tmp=head.next
head.next=self.swapPairs(tmp.next)
tmp.next=head
return tmp
2.直接调换
class Solution(object):
def swapPairs(self,head):
pre=dummy=Node(0)
pre.next=head
while pre.next and pre.next.next:
a=pre.next
b=pre.next.next
pre.next,a.next,b.next=b,b.next,a
pre=a
return dummy.next