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.
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* swapPairs(struct ListNode* head) {
struct ListNode* node = NULL;
if(head==NULL) return node;
node = (struct ListNode*)malloc(sizeof(struct ListNode));
node = head;
int num = 0;
while(node->next!=NULL)
{
if(num%2==0)
{
int val = node->val;
node->val = (node->next)->val;
(node->next)->val = val;
}
node=node->next;
num++;
}
return head;
}