
Problem: 交换相邻的两个节点

如上图所示,递归进行交换。从最尾端开始,当最尾端只有一个节点时,停止交换
否则执行 swap(head.next)
参考代码:
package leetcode_50; /**
*
* @author pengfei_zheng
* 交换相邻节点
*/
public class Solution24 {
public class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
} public ListNode swapPairs(ListNode head) {
if ((head == null)||(head.next == null))
return head;
ListNode n = head.next;
head.next = swapPairs(head.next.next);
n.next = head;
return n;
}
}