【数据结构】单链表逆序

本文详细介绍了如何通过指针操作实现单链表的逆序。通过使用两个工作指针p和q,逐步将链表节点倒置,直至p为空,解释了为何必须从头结点开始操作,并讨论了特殊情况如空链表的处理。最后,文章提到了在VC6.0环境下运行的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

话不多说,我们先来看看我们的单链表
初始化单链表
大致的思路是将下一个指针插入到头结点的后面,比如【1,2,3】就会变成【2,1,3】再接着变成【3,2,1】

接下来我们看看图来帮助我们理清指针的指向

这里我们需要引入一个工作指针 *p,指向的就是【下一个结点】(黄色笔迹表示新的操作)这里将头结点置空可以认为是后续步骤的统一
初始化工作指针
整理一下这个图就会变成这样,我们能够看出来其实指针p是断链后防丢的,而p的“前一个结点”实际上就是逆序后的最后一个结点,其next指针为空
在这里插入图片描述
接下来看我们第一个倒置
先引入第二个工作指针 *q,它会接替p的位置好让p可以去指向下一个结点,然后q这个结点的next会接上前一节链表最后一个结点的指向(上一个指向NULL ,然后前一节的链表会接上当前结点也就是q的指向

图乱?没事我们理一理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值