void reverse(node *head)
{
node *a,*b,*c;
node *a=head;
if(a->next)//如果a有下一个节点
{
b=a->next;
if(b->next)//如果b有下一个节点
{
while(true)//循环,使每个节点指向前一个节点
{
if(b->next)
{
c=b->next;
b->next=a;
}
else
{
b->next=a;
break;
}
a=b;
b=c;
}
else//如果只有两个节点
b->next=a;
a->next=null;
}
//else只有一个节点
}
是这样:a->b->c是原链表中的节点顺序,循环改变链接为a<-b c,然后a=b,b=c;node是节点,next是node中的一个变量指向下一个节点,也不知道对不对,大概就是这个意思吧
比较优美的算法如下:
void reverse(int a[], int size)
{
int i,j,tmp;
for(i=0, j=size-1; i
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
}