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.
简单粗暴,首先让p指向第一个节点,若果p.next不为空,q指向p.next,交换p和q的值即可,如果p.next为空,退出。交换值后,让q.next赋值给p,如果q.next为空的话,退出循环。
public ListNode swapPairs(ListNode head) {
if(head==null||head.next==null)
return head;
ListNode pListNode=head,qListNode=null;
int temp=0;
while(pListNode.next!=null)
{
qListNode=pListNode.next;
temp=pListNode.val;
pListNode.val=qListNode.val;
qListNode.val=temp;
if(qListNode.next==null)
break;
else
pListNode=qListNode.next;
}
return head;
}
24_leetcode_Swap Nodes in Pairs
原文:http://blog.csdn.net/mnmlist/article/details/43370269