链表的逆置

方法思想:逆置链表初始为空,表中节点从原链表中依次“删除”,再逐个插入逆置链表的表头(即“头插”到逆置链表中),使它成为逆置链表的“新”的第一个结点,如此循环,直至原链表为空。

LNode *Inverse(LNode *L)
{
LNode *p, *q;
p = L->next;
L->next = NULL;
while (p != NULL)
{
q = p;
p = p->next;

    q->next = L->next;
    L->next = q;
}
return L;

}
接下来,进行图解:
刚开始是这样
’循环前的操作
进入循环,分别用q和p记录第一个和第二个节点

进入第二轮循环,这是发生重大变化的关键时期
![![![![![![![360截图172905071151341558.png](https://upload-images.jianshu.io/upload_images/20526589-055b0ae767956760.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ](https://upload-images.jianshu.io/upload_images/20526589-526e9856ea78b97e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ](https://upload-images.jianshu.io/upload_images/20526589-d41d68b939bd50cb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ](https://upload-images.jianshu.io/upload_images/20526589-6ee4d0677087b982.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ](https://upload-images.jianshu.io/upload_images/20526589-e26b2a5ee4cb112d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ](https://upload-images.jianshu.io/upload_images/20526589-b28f57162105008b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ](https://upload-images.jianshu.io/upload_images/20526589-df8da8ef173e1dcc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

直到链表为空

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • include<iostream> using namespace std; //单链表 typedef stru...
    jmychou阅读 455评论 0 0
  • 本文来自本人著作《趣学数据结构》 链表是线性表的链式存储方式,逻辑上相邻的数据在计算机内的存储位置不一定相邻,那么...
    rainchxy阅读 3,793评论 6 20
  • setAttribute(k,v) 设置节点属性getAttribute (k)获取节点属性parent 父亲c...
    吃肉肉不吃肉肉阅读 147评论 0 3
  • 今天是我每天一篇文章的第109篇。 这几天因为在写关于用户标签的文章,于是脑子里冒出很多关于如何定位的问题...
    很温暖阅读 145评论 0 0
  • 前言 一般画图都采用直角坐标系,偶尔也会采用极坐标系。 直角坐标系已经很熟悉了,不赘述了。 极坐标是二维坐标系,有...
    丈量迷宫阅读 2,498评论 0 1