这是一道链表题。做链表的题,可以增加对指针,或者说引用的概念的理解。所以这也是一个有意思的题。
下面是题解,没有思路的话可以参考看看:
class Solution {
public static ListNode swapPairs(ListNode head) {
if(head==null||head.next==null)return head;
ListNode l = head;
ListNode r = head.next;
//第一次交换
ListNode ll = l;
l.next = r.next;
r.next = l ;
ListNode result = r;
l = l.next ;
if(l!=null)
r = l.next;
//第2。。。N次交换
while(l!=null&&l.next!=null) {
l.next = r.next;
r.next = l ;
ll.next = r;
ll = l;
l = l.next ;
if(l!=null)
r = l.next;
}
return result;
}
}