
反转链表,(5)
初始化三个指针,将pNode指向原链表的头节点,pNext和pPrev指向空的节点头。 开始遍历原链表: 重复上述步骤,直到遍历完成。
发布日期:2021-05-19 23:22:36
浏览次数:10
分类:精选文章
本文共 767 字,大约阅读时间需要 2 分钟。
链表反转是一个常见的数据结构操作,其基本思路是从原链表的末尾向前遍历,并将节点逐步反转,形成新的链表。
反转链表的步骤如下:
- 当前节点pNode,下一个节点pNext。
- 如果pNext为空,说明已经到达链表末尾。此时,将pRrev设置为pNode,因为它将成为反转后的链表的头节点。
- 将pNode的下一个指针(m_pNext)指向pPrev,使其成为反转链表的新末尾。
- 更新pPrev为pNode,移动pNode到pNext。
通过这种方式,每个节点都会被逐步反转,形成新的链表结构。
优化后的代码如下:
#include "ListNode.h"using namespace std;ListNode* reversedListNode(ListNode* pHead) { if(pHead == NULL) return NULL; ListNode* pRrev = NULL; ListNode* pNode = pHead; ListNode* pNext = NULL; ListNode* pPrev = NULL; while(pNode != NULL) { pNext = pNode->m_pNext; if(pNext == NULL) { pRrev = pNode; } pNode->m_pNext = pPrev; pPrev = pNode; pNode = pNext; } return pRrev;}
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年05月07日 03时07分27秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Rust异步浅谈
2019-03-17
【Rust每周一库】sled - 嵌入式数据库
2019-03-17
man工具
2019-03-17
【网络加速】TensorRT7-开发指南中文_Plus版【1】
2019-03-17
SaltStack about The Top File 使用知识介绍
2019-03-17
网络协议和支持(一)、uuid模块
2019-03-17
numpy.vstack
2019-03-17
numpy.frombuffer()
2019-03-17
文件结束符EOF
2019-03-17
Latex 错误集合
2019-03-17
利用VNC进行Windows和Linux之间的复制
2019-03-17
Python中什么时候用logger.debug, info, error
2019-03-17
Python的内置函数(四十一)、 index()
2019-03-17
Python的内置函数(四十二)、 numel()
2019-03-17
Python 代码占多行
2019-03-17
cuda error:device-side assert triggered
2019-03-17