题目:设计一个算法,通过遍历一趟,将链表中所有结点的链接方向逆转,仍利用原表的存储空间。
代码如下:
void reverse(Linklist& L)
{
Linklist q,p=L->next;//p为图中1结点
L -> next = NULL;//对应图中1结点后继置空
while (p)
{
q = p->next;//q为p后一结点,和p同样会后移
p->next = L->next;//p结点后继改为头结点的后继,刚开始为NULL,之后都是有结点的
L->next = p;//头结点后继变为p结点,最先的是1结点,后面依次为 2 3 4 5
p = q;//p结点后移
}
}