博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
翻转链表问题
阅读量:6943 次
发布时间:2019-06-27

本文共 683 字,大约阅读时间需要 2 分钟。

思路就是利用一个空的结点,使第一个结点与第二个结点的链接断开,第一个结点链接这个空结点,以此类推。但在断开链接之前需要用一个临时的变量保存第一个结点所指的结点(temp=p->next;),防止找不到后续的结点。

1 typedef int ElemType; 2 typedef struct LNode *LinkList; 3 typedef struct LNode 4 { 5     ElemType data; 6     LinkList next; 7 }LNode; 8 LinkList ReverseList (LinkList L) 9 {10     LinkList temp; //定义临时变量保存结点11     LinkList p=L; 12     LinkList save=NULL; //保存13     LinkList head;14     head->next = p;15     while(p)16     {17         temp = p->next;  //保存18         p->next = save; //指向前一个结点19         save = p;    //前进到旧链表的第一个结点20         p = temp;  //继续进行下一次翻转21     }22     head->next = save;23     return head;24 }

 

转载于:https://www.cnblogs.com/pxy-1999/p/10246450.html

你可能感兴趣的文章
阿里重磅开源FESCAR,解决开发者分布式事务问题
查看>>
再见吧USB!无线激光一体机好价精选
查看>>
科幻也将成为现实 努比亚α将亮相MWC2019
查看>>
数据库两大神器【索引和锁】
查看>>
JSP第一篇【JSP介绍、工作原理、生命周期、语法、指令、行为】
查看>>
训练效能提升2-4倍!京东携SparkGBM成果亮相Spark Summit 2018
查看>>
VeeValidate在vue项目里表单校验应用案例
查看>>
源码分析之ThreadLocal
查看>>
浏览器内核渲染:重建引擎
查看>>
在互联网中,每个人都是裸体的
查看>>
根据Promise/A+规范模拟实现Promise
查看>>
一个浏览器, 三分钟搭建个人博客
查看>>
[译] 基于 Metal 的 ARKit 使用指南(上)
查看>>
当代码变更遇上精准测试的总结
查看>>
Unity引擎与C#脚本简介
查看>>
细数Android系统那些DOS漏洞
查看>>
检测 TextView 是否因为设置 ellipsize 属性而显示省略号
查看>>
算法?
查看>>
SQLite 笔记
查看>>
Android插件化开发核心类ClassLoader相关详解
查看>>