Problem: 交换相邻的两个节点
![](https://images2015.cnblogs.com/blog/834545/201703/834545-20170309193133938-1973174409.gif)
如上图所示,递归进行交换。从最尾端开始,当最尾端只有一个节点时,停止交换
否则执行 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; } }