0024.两两交换链表中的节点
方法一:递归
时间复杂度 $O(n)$,空间复杂度 $O(n)$,$n$表示链表的长度。
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func swapPairs(head *ListNode) *ListNode {
if head == nil || head.Next == nil {
return head
}
res := swapPairs(head.Next.Next)
p := head.Next
p.Next, head.Next = head, res
return p
}