给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
示例: 给定 1->2->3->4, 你应该返回 2->1->4->3
思路:递归
public ListNode swapPairs(ListNode head) {
if(head == null || head.next == null) return head;
ListNode node = head.next;
head.next = swapPairs(head.next.next);
node.next = head;
return node;
}
递归遍历到链表末尾,然后先交换末尾两个,然后依次往前交换: .