C语言链表就地逆置操作

在c语言中,为了节省空间和时间,我们可以采取在原空间上实现链表的逆置

每次读取一个节点时,将他用头插法的方法加入到链表中,最后得到的即是逆置后的链表了

关键掌握头插法的思路:

q->next=l->next;

l->next=q;

下面是具体方法实现以及说明:

void  PrintLinklist_back(linklist l)   

{
linklist pre = l->next;   //用来遍历的节点
linklist  q;     //定义一个空闲节点
l->next = NULL;     //头节点指向空
//就地逆置
while (pre!=NULL)   //遍历
{
q = pre;
pre = pre->next;
q->next = l->next;
l->next = q;

}

}

猜你喜欢

转载自blog.csdn.net/kuishao1314aa/article/details/79709503