本题要求实现一个函数,对带有头结点的单链表进行就地逆置。
这题是一个简单的单链表倒置,可以使用头插法。
存储结构:typedef int ElemType; typedef struct LNode { ElemType data; struct LNode *next; }LNode,*LinkList; LinkList Create();
函数接口:
void reverse ( LinkList L );
输入格式:1 2 3 4 5 6 -1
输出样例:1 2 3 4 5 6
6 5 4 3 2 1
代码实现:void reverse ( LinkList L )
{
LinkList p,q;
p = L->next;
L->next = NULL;
while(p)
{
//向后挪
q = p;//
p = p->next;
//头插
q->next = L->next;//非常重要,相当于p和q之间没有了指针连接
L->next = q;//把q接到头的后面
}
}