楼主,你好,我前天恰好做了一道类似的题,代码如下,我都给你注释了
struct staff *reverse(struct staff *head) //struct staff是个结构体
{
struct staff *p,*q,*temp,*o;
q=head; //q指针始终保持在p的前一个结点处
p=head->next; //利用p指针从第2个结点开始遍历整个链表
o=head; //这个指针用来修改头指针head的指针域为NULL
//循环遍历链表,逐一修改指针域,其中temp用来做中间交换
while(p!=NULL)
{
temp=p->next;
p->next=q;
q=p;
p=temp;
}
o->next=NULL; //如上所述
head=q; //反转过后的head地址
return head; //返回新的head指针
}
应该能懂吧?
不懂再问