部分代码:
linklist p, q; //linklist为已定义好的单链表结构体,head为主函数中已分配内存空间的头指针。
p = head->next;
head->next = NULL;
while (p != NULL)
{
q = (linklist)malloc(sizeof(node));
q = p;
p = p->next;
q->next = head->next;
head->next = q;
}
顾名思义,就是在头结点前不断更新数据。
可以这样理解,例如模拟一个含有头结点->3->5->7->NUL的链表,要将其逆置,肯定想到的是 要变成头结点->7->5->3->NULL,那么就可以通过设置p,q两个指针,当p非空时,每次操作使得1.q
指向p 2.p指向下一个数3.q指向头结点 4.头结点指向q。这样 第一次遍历,q就变为 3->NULL,
第二次遍历,q变为5->3->NULL.,以此便可以实现逆置操作。