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

2024-11-28 09:25:09
推荐回答(1个)
回答1:

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

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