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;
  }
}

 

你可能感兴趣的:(C)