数据结构(C语言版)的一道题

已知单链表L,试编写程序 将L中元素逆置(不需额外增加空间)

各位专家,帮帮忙

楼主,你好,我前天恰好做了一道类似的题,代码如下,我都给你注释了

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指针
}
应该能懂吧?
不懂再问

参考资料:自己打的

温馨提示:答案为网友推荐,仅供参考
相似回答