问答题 有一个单链表L(至少有1个结点),其头结点指针为head,编写一个过程将L逆置,即最后一个结点变成第一个结点,原来倒数第二个结点变成第二个结点,如此等等。【燕山大学2001年】
【正确答案】正确答案:算法的基本设计思想: 将头结点摘下,然后从第一个结点开始,直到最后一个结点为止,依次前插入头结点的后面,则实现了链表的逆置。 算法的代码: LinkList invert(LinkList la){//la是带头结点的单链表 p=la一>next, //p为工作指针 1a一>next=NULL; while(p!=NULL) { r=p一>next; //暂存P的后继 p一>next=la一>next; //将P结点前插入头结点后 la->next=p; p=r; } return 1a; }//invert
【答案解析】