遍历一次实现单链表顺序反转

来源:互联网 发布:广播系统 杰网络 编辑:程序博客网 时间:2024/05/22 05:28

近日在阅读《编程之美》中看到,单链表在不告诉头指针的情况下完成删除指定节点的方法,算法为将删除节点的下一个节点的数据copy到删除节点中,再删除删除节点的下一个节点,从而实现移花接木的效果,完成对要求删除节点数据删除的目的。代码如下:

  pCurrent->next = pNext->next;  pCurrent->data = pNext->data;  delete pNext;

扩张问题为编写一个函数,给定一个链表的头指针,要求遍历一次,将单链表中的顺序反过来。

我编写这个函数的实现,代码如下:

   Node_t * inverse( Node_t *pHead )  {         Node_t *pNext = NULL;         Node_t *pCurrent = pHead;         Node_t *pLast = NULL;   while (pCurrent->next != NULL)         {                pNext = pCurrent->next;                pCurrent->next = pLast;                pLast = pCurrent;                pCurrent = pNext;          }        pCurrent->next = pLast;         return pCurrent;  }

通过总结,就是用节点指针变量存储欲改变之前的节点指针,从而就可以实现各种功能了。

0 0
原创粉丝点击