原题链接在这里:https://leetcode.com/problems/swap-nodes-in-pairs/
需要建一个dunmy,最后return dunmy.next. 如此可以避免边界问题的讨论,例如头两个点的转换。
AC Java:
/**
* 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 || head.next == null){
return head;
}
ListNode dunmy = new ListNode(0);
dunmy.next = head;
ListNode mark = dunmy;
ListNode temp;
ListNode cur;
while(mark.next != null && mark.next.next!=null){
cur = mark.next.next;
temp = cur.next;
mark.next.next=temp;
cur.next = mark.next;
mark.next = cur;
mark = cur.next;
}
return dunmy.next;
}
}