链表节点交换1-2-3-4变成2-1-4-3,在前面补一个节点,然后两两交换即可
public ListNode swapPairs(ListNode head) {
if(head==null)return null;
ListNode start = new ListNode(0);
start.next=head;;
head=start;
while(head.next!=null&&head.next.next!=null){
ListNode tmp = head.next.next;
head.next.next=tmp.next;
tmp.next=head.next;
head.next=tmp;
head=tmp.next;
if(head.next==null)break;
}
return start.next;
}
Update 2015/08/20: 上面的做法没有必要判断if (head.next == null) break; 和最上面的return null;