链表篇
#include<stdio.h>//P77例三
int ReversDouble(LinkList L)
{ int n=1;
LinkList pre,p,q;
pre=L;
p1=L->next;
p=L->next;
while(p)
{
q=p->next;
if(n%2==1)
{
pre=q;
p=q;
n++;
}
if(n%2==0)
{
pre->next=p->next;
p->next=p1;
L->next=p;
p=q;
n++;
}
}
}
在处理链表时,经常要定义一个前驱指针pre,当前指针p,下一个指针q
不要忘了每次比较完成时令p=q,因为如果对p进行操作的话,p的next域会被覆盖。