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; } }