刷题笔记:力扣第206题-反转链表

发布时间:2026/11/5 13:55:24

刷题笔记:力扣第206题-反转链表 1.看评论区有朋友总结出了一个简单明了的思路原链表:1→2→3→4(prenull)1 null←1 2→3→4(pre1)2 null←1←2 3→4(pre2)3 null←1←2←3 4(pre3)4 null←1←2←3←4(pre4)每次都将原链表的next指向新链表的末尾并且都记录上一次操作的节点pre写出的完整代码如下1. /** 2. * Definition for singly-linked list. 3. * struct ListNode { 4. * int val; 5. * struct ListNode *next; 6. * }; 7. */ 8. struct ListNode* reverseList(struct ListNode* head) { 9. // 空链表直接返回NULL 10. if (head NULL) return NULL; 11. 12. // cur遍历当前处理节点初始指向头节点 13. struct ListNode* cur head; 14. // pre保存上一个节点反转后作为当前节点后继初始为空 15. struct ListNode* pre NULL; 16. while (cur ! NULL){ 17. // tmp临时保存下一个节点防止断链丢失后续链表 18. struct ListNode* tmp cur-next; 19. // 当前节点指向前面节点完成反转 20. cur-next pre; 21. // tmp为空说明已经遍历到原链表最后一个节点就是反转后的新头节点 22. if (tmp NULL){ 23. return cur; 24. } 25. // pre更新为当前节点作为下一轮的前驱 26. pre cur; 27. // cur移动到原下一个节点继续反转 28. cur tmp; 29. } 30. 31. return cur; 32. }还可以继续简化不需要if (tmp NULL)返回值从cur改为pre即可最后一次pre的指向的节点便是新链表的头结点。这样一来就连一开始的特出情况判断if (head NULL) return NULL也可以删去了。2.上述代码使用的是迭代法循环下面这种写法是递归法自己调用自己1. /** 2. * Definition for singly-linked list. 3. * struct ListNode { 4. * int val; 5. * struct ListNode *next; 6. * }; 7. */ 8. // 递归反转链表辅助函数pre为前一个节点cur为当前处理节点 9. struct ListNode* reverse(struct ListNode* pre, struct ListNode* cur){ 10. // 递归终止条件当前节点为空pre就是反转后的头节点 11. if (cur NULL) return pre; 12. // 临时保存cur原本的下一个节点防止断链 13. struct ListNode* tmp cur-next; 14. // 将当前节点指向前面节点完成局部反转 15. cur-next pre; 16. // 更新前驱节点为当前节点供下一层递归使用 17. pre cur; 18. // 递归处理下一个节点 19. return reverse(pre, tmp); 20. } 21. 22. // 链表反转入口函数 23. struct ListNode* reverseList(struct ListNode* head) { 24. // 初始前驱传NULL当前节点传链表头调用递归反转 25. return reverse(NULL, head); 26. }这种写法与第一种思路一模一样只是进行了递归改写。
延伸阅读

更多相关文章

2026/10/31 5:35:08

基因编辑CRISPR与单细胞测序:十年技术演进与生命科学范式转移

1. 从“盘点”到“回响”:为什么我们今天还要看2014年的发明?每次看到“盘点”和“重要发明”这样的字眼,我总会下意识地先问自己一个问题:这些被媒体和机构选中的“重要发明”,十年后回头看,它们真的重要吗…

2026/11/1 22:11:57

ReactNative与OpenHarmony跨平台开发实战

1. 跨平台开发新战场:ReactNative与OpenHarmony的融合实践最近在折腾一个有意思的技术组合——把ReactNative生态的三方库react-native-inappbrowser移植到OpenHarmony平台。这个需求源于我们团队正在开发的跨平台应用需要在鸿蒙设备上实现安全的内置浏览器功能。传…

2026/10/28 19:39:39

AI如何革新文献综述:智能检索与自动摘要技术解析

1. 文献综述的痛点与AI解决方案写文献综述可能是每个科研人最头疼的环节之一。我读博那会儿,经常要花一两周时间泡在图书馆,翻阅几十篇论文,做笔记、分类、总结,最后才能写出一篇像样的综述。现在回想起来,那些日子真是…

2026/11/5 13:55:19

GD32E10x官方例程入门:从GPIO点灯到串口调试

简介:这份GD32E10x系列官方例程面向嵌入式硬件与单片机开发者,基于ARM Cortex-M3内核,汇集兆易创新GD32E10x的示例代码,适合工业控制、消费电子、通信设备等场景的学习、验证与二次开发。压缩包共935个文件,约11.16MB&…

2026/11/5 13:50:18

基于Django的运维平台实战:资产、发布、巡检、告警一体化

简介:这份资源是一套基于Django框架开发的运维平台源码,面向具备Python基础、希望了解Web运维系统实现思路的开发者与运维人员,可用于学习主机管理、服务监控、日志查看、任务调度、权限控制、资源统计、脚本执行与故障告警等常见运维模块的落…

2026/11/5 13:25:11

基于ADS122U04IPWR与STM32F427ZI的工业测温方案设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 13:20:10

Dubbo服务下线实时告警:基于ZooKeeper Watch的轻量级监控方案

简介:这是一套面向Java分布式系统运维与开发人员的Dubbo服务高可用监控解决方案,聚焦于Provider异常下线的实时感知与告警响应。资源通过Zookeeper监听机制实现服务状态变更捕获,结合邮件通知模块,在不侵入原有Dubbo代码的前提下&…

2026/11/5 13:20:10

SSM超市管理系统源码解析:从分层架构到本地部署与业务修改

简介:这份资源是面向高校计算机专业学生与Java初学者的一套SSM框架课程设计完整项目,围绕超市管理场景,帮助读者完成从框架整合到业务模块落地的实战练习,适合作为毕业设计或课程作业的参考方案。压缩包共792个文件,约…

2026/11/5 13:20:10

SSM超市管理系统实战:从课设跑通到二次开发全解析

简介:这份资源是面向高校计算机相关专业学生与Java入门开发者的SSM课程设计参考项目,围绕超市管理场景,解决商品、库存、销售等业务模块从设计到落地的实践需求,适合作为课程作业、毕业设计原型或SSM框架练手案例。压缩包共792个文…

2026/11/4 12:38:23

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 0:02:07

多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中…

2026/11/5 0:02:07

大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#…

2026/11/5 0:02:07

鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的…

2026/11/4 12:38:23

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑