原题:
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.
此题就是一个链表节点的交换,不过要注意边界条件
public ListNode swapPairs(ListNode head) { if(head == null) return null; ListNode tempHead = new ListNode(0); tempHead.next = head; ListNode pPre = head; ListNode pAft = tempHead; while(pPre != null && pPre.next != null) { //注意这里的边界条件 pAft.next = pPre.next; pPre.next = pPre.next.next; pAft.next.next = pPre; pPre = pPre.next; pAft = pAft.next.next; } return tempHead.next; }