Node* pairWiseSwap(struct Node* head)
{
if(head==NULL || head->next==NULL) return head;
Node* a=head;
Node* start=NULL;
Node* prlast=NULL;
while(a!=NULL && a->next!=NULL)
{
Node* b=a->next;
a->next=b->next;
b->next=a;
// cout<<"a: "<<a->data<<" b: "<<b->data<<endl;
if(a==head)
start=b;
if(prlast!=NULL)
prlast->next=b;
prlast=a;
a=a->next;
}
return start;
}