(微软笔试题)Swap pairs of elements in list
如题
[解决办法]
typedef struct node
{
int n;
struct node *next;
}Linklist;
Linklist *swapPairs(Linklist *head)
{
Linklist *p=NULL;
Linklist *q=NULL;
Linklist *L=NULL;
if(head==NULL) return;
L=p=head;
q=p->next;
while(q!=NULL)
{
if(L!=head)
L->next=q;
p->next=q->next;
q->next=p;
if(head==p)
head=q;
L=p;
p=p->next;
if(p==NULL)
q=NULL;
else
q=p->next;
}
return head;
}