题目描述:
Given a linked list, swap every two adjacent nodes and return its head.
For example,
Given 1->2->3->4
, you should return the list as 2->1->4->3
.
Your algorithm should use only constant space. You may not modify the values in the list, only nodes itself can be changed.
解题思路:
我只想说递归大法好。
代码如下:
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ public class Solution { public ListNode swapPairs(ListNode head) { if (head == null) return null; if (head.next == null) return head; ListNode tmp = head.next; ListNode forward = head.next.next; tmp.next = head; head.next = swapPairs(forward); return tmp; } }
Java [leetcode 24]Swap Nodes in Pairs
原文:http://www.cnblogs.com/zihaowang/p/4506436.html