news 2026/5/11 12:28:32

【算法】小白也能懂 · 第 3 节:链表反转(迭代法、递归法)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【算法】小白也能懂 · 第 3 节:链表反转(迭代法、递归法)

链表反转是面试中出镜率最高的算法题之一,也是理解链表操作的最佳练习。这一节我们会用两种方法来实现:迭代法和递归法,并配合图解帮你真正搞懂每一步在干什么。

1. 什么是链表

在正式开始之前,先快速回顾一下链表的结构。
链表由一系列"节点"组成,每个节点包含两部分:

  • 存储的数据(val
  • 指向下一个节点的指针(next
structListNode{intval;ListNode*next;ListNode(intx):val(x),next(nullptr){}};

假设有一个链表1 → 2 → 3 → nullptr,反转后的结果是3 → 2 → 1 → nullptr。本质上就是把每个节点的next指针方向掉个头。

2. 迭代法:用三个指针"边走边翻"

2.1 核心思路

想象你在翻一排扑克牌。你手里有一张"前一张",面前是"当前牌",还有一张"下一张"备用。你把当前牌翻过来指向前一张,然后三张牌都往前挪一步。
三个关键指针:

  • prev:已经反转好的部分的头(初始为nu
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/11 12:28:13

QGC界面切换背后的秘密:拆解MainToolBar.qml如何通过信号槽驱动五大视图

QGC界面切换背后的秘密:拆解MainToolBar.qml如何通过信号槽驱动五大视图 当你在QGroundControl(QGC)中点击底部工具栏的按钮时,整个界面会流畅地切换到对应的功能视图。这看似简单的交互背后,隐藏着QML框架精妙的信号槽机制和组件化设计思想…

作者头像 李华
网站建设 2026/5/11 12:27:41

C语言指针:从零掌握指针(4)

文章目录C语言指针:从零掌握指针(4)前言一、字符指针变量总结:二、数组指针变量2.1 是什么?2.2 怎么初始化?三,二维数组传参的本质总结:四, 函数指针变量4.1 函数指针变量的创建4.2 …

作者头像 李华
网站建设 2026/5/11 12:26:02

如何快速解决FanControl ADLX初始化失败:AMD显卡用户完整指南

如何快速解决FanControl ADLX初始化失败:AMD显卡用户完整指南 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Tren…

作者头像 李华
网站建设 2026/5/11 12:23:18

ARM调试与数据缓存维护指令详解

1. ARM调试与数据缓存维护指令深度解析在嵌入式系统开发领域,ARM架构处理器的调试和缓存维护机制是每个底层开发者必须掌握的核心技术。调试寄存器(DBGWVR)和数据缓存维护指令(DCCIMVAC等)构成了系统调试和性能优化的基石,它们直接影响着开发效率、系统稳…

作者头像 李华
网站建设 2026/5/11 12:19:37

用Logisim搞定华科计组实验:从零搭建单总线CPU(含定长/变长时序对比)

用Logisim从零构建单总线CPU:定长与变长时序的实战对比 在计算机组成原理的实验课程中,CPU设计往往是让学生既兴奋又头疼的核心环节。华科的这门实验要求学生用Logisim搭建一个完整的单总线CPU,其中时序控制单元的设计尤为关键。很多同学在完…

作者头像 李华