编写算法,对带头结点的单链表实现就地逆置(算法设计题)
思路:将头结点摘下,然后从第一结点开始,依次前插入到头结点的后面(头插法建立单链表),直到最后一个结点为止
代码如下(摘自:C语言中文网):
LinkList Reverse_l(LinkList &L) { //L是带头结点的单链表,本算法将L就地逆置 p = L->next; //p为工作指针,从第一个元素结点开始 L->next = NULL; //先将头结点L的next域置为NULL while (p != NULL) { //依次将元素结点摘下 r = p->next; //暂存p的后继 p->next = L->next; //将p结点插入到头结点之后 L->next = p; p = r; } return L; }