试题与答案

设计将带表头的链表逆置的算法。

题型:问答题

题目:

设计将带表头的链表逆置的算法。

答案:

参考答案:设单循环链表的头指针为head,类型为LinkList。逆置时需将每一个结点的指针域进行修改,使其原前驱结点成为后继。如果更改q结点的指针域时,设s指向其原前驱结点,P指向其原后驱结点,则只需进行q->next=s;操作即可,算法描述如下:
void invert(LinkList*head)
{//逆置head指针所指向的单循环链表
Linklist*P,*q,*S;
q=head;
p=head->next;
while(p!=head)//当表不为空时,逐个结点逆置
{
s=q;
q=p;
p=p->next;
q->next=s;

试题推荐
微信公众账号搜索答案