-
从老链表第一个元素开始,逐个取出
- 第一个取出的元素,让其
next
指向nullptr
。由于改变其指向,会导致后续链表没有指向消失,所以要在这步之前将其后续元素的指向放在一个新变量中 - 再将后续结点的指向当前结点,不断反复运行就可以实现链表反转
- 第一个取出的元素,让其
-
难点就是如何在设置链表指向结点时,不同指针的关系不要混乱
-
#include <iostream>struct ListNode {int val;ListNode* next;ListNode(): val(0), next(nullptr) {}ListNode(int v): val(v), next(nullptr) {}ListNode(int v, ListNode* _next): val(v), next(_next) {} };class Solution { public:ListNode* reverseList(ListNode* head) {ListNode* cur = head, *pre = nullptr;for ( ; cur != nullptr; ) {ListNode* temp = cur->next;cur->next = pre;pre = cur;cur = temp;}return pre;} };void show(ListNode* head) {for (auto* p = head; p != nullptr; p = p->next)std::cout << p->val << " ";std::cout << std::endl; }int main() {ListNode* l5 = new ListNode(5);ListNode* l4 = new ListNode(4, l5);ListNode* l3 = new ListNode(3, l4);ListNode* l2 = new ListNode(2, l3);ListNode* l1 = new ListNode(1, l2);show(l1);Solution s;ListNode* head = s.reverseList(l1);show(head);return 0; }
-
核心代码在11行到23行
-
汇总
代码随想录算法训练营第三天 | 链表理论基础 | 206.反转链表
2025/5/7 15:31:11
来源:https://blog.csdn.net/taoyong001/article/details/144457423
浏览:
次
关键词:代码随想录算法训练营第三天 | 链表理论基础 | 206.反转链表
版权声明:
本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。
我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com
热文排行
- 华为 海思22AP10(SS524)H.265 编解码处理器用户指南
- 数据库物理结构设计
- 基于重要抽样的主动学习不平衡分类方法ALIS
- 《缺失MRI模态下的脑肿瘤分割的潜在相关表示学习》| 文献速递-深度学习肿瘤自动分割
- npm install puppeteer 报错 npm ERR! PUPPETEER_DOWNLOAD_HOST is deprecated解决办法
- 如何在 Mac 上清空硬盘后恢复丢失的数据?
- (2)Django生产环境数据库的切换以及环境配置python-dotenv方案
- 开源模型时代的 AI 开发革命:Dify 技术深度解析
- 【微信小程序】自定义组件 - 组件的生命周期
- 大模型分离架构学习记录