news 2026/5/7 10:58:14

day130—链表—反转链表(LeetCode-206)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
day130—链表—反转链表(LeetCode-206)

题目描述

给你单链表的头节点head,请你反转链表,并返回反转后的链表。

示例 1:

输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]

示例 2:

输入:head = [1,2]输出:[2,1]

示例 3:

输入:head = []输出:[]

提示:

  • 链表中节点的数目范围是[0, 5000]
  • -5000 <= Node.val <= 5000

解决方案:

这段代码的核心功能是反转一个单链表(将链表的节点指向全部倒置,比如原链表 1→2→3→null 变为 3→2→1→null),采用「迭代法」实现,时间复杂度为O(n)n为链表节点数),空间复杂度为O(1)(仅使用常量级额外空间),是反转单链表的经典高效解法。

核心逻辑

代码通过维护三个指针(precurnxt),逐个改变节点的指向,全程只需一次遍历:

  1. 指针初始化prenullptr(表示当前节点的前一个节点,初始无),cur指向链表头节点(待处理的当前节点),nxt暂存当前节点的下一个节点;
  2. 迭代反转:循环处理每个节点,直到curnullptr(遍历完所有节点):
    • 先用nxt保存cur->next(防止反转指向后丢失后续节点);
    • cur->next指向pre(完成当前节点的反转);
    • pre移动到cur(成为下一个节点的 “前节点”);
    • cur移动到nxt(处理下一个节点);
  3. 返回结果:循环结束时,pre指向原链表的最后一个节点(即反转后链表的头节点),返回pre即可。

总结

  1. 核心思路:通过三个指针 “接力”,逐个反转节点指向,避免递归带来的额外空间开销;
  2. 关键操作:每次反转前用nxt保存后续节点,是防止链表断裂的核心;
  3. 效率特点:一次遍历完成反转,时间O(n)、空间O(1),是反转单链表的最优解法之一。

函数源码:

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(next) {} * }; */ class Solution { public: ListNode* reverseList(ListNode* head) { ListNode* pre=nullptr; ListNode* cur=head; ListNode* nxt=nullptr; while(cur){ nxt=cur->next; cur->next=pre; pre=cur; cur=nxt; } return pre; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/7 7:57:42

告别手忙脚乱!5分钟学会用OBS实时标注,直播教学效率翻倍

告别手忙脚乱&#xff01;5分钟学会用OBS实时标注&#xff0c;直播教学效率翻倍 【免费下载链接】obs-studio OBS Studio - 用于直播和屏幕录制的免费开源软件。 项目地址: https://gitcode.com/GitHub_Trending/ob/obs-studio 你是否曾在直播教学中&#xff0c;为了强调…

作者头像 李华
网站建设 2026/5/2 22:05:45

高效处理复杂文本表达|Supertonic TTS镜像技术深度解读

高效处理复杂文本表达&#xff5c;Supertonic TTS镜像技术深度解读 1. 引言&#xff1a;设备端TTS的性能革命 在语音合成&#xff08;Text-to-Speech, TTS&#xff09;领域&#xff0c;传统云服务依赖网络传输和远程计算资源&#xff0c;存在延迟高、隐私泄露风险、成本不可控…

作者头像 李华
网站建设 2026/4/23 17:18:56

零基础教程:用Cute_Animal_For_Kids_Qwen_Image制作萌宠插画

零基础教程&#xff1a;用Cute_Animal_For_Kids_Qwen_Image制作萌宠插画 1. 引言 1.1 学习目标 本文是一篇面向零基础用户的完整入门指南&#xff0c;旨在帮助你快速掌握如何使用 Cute_Animal_For_Kids_Qwen_Image 这一专为儿童内容设计的AI图像生成镜像&#xff0c;轻松创作…

作者头像 李华
网站建设 2026/4/24 19:09:43

HY-MT1.5-1.8B实际项目应用:政府文件多语翻译案例

HY-MT1.5-1.8B实际项目应用&#xff1a;政府文件多语翻译案例 1. 引言&#xff1a;轻量级多语翻译模型的现实需求 随着全球化进程加快&#xff0c;政府机构在对外交流、政策发布、公共服务等场景中面临日益增长的多语言翻译需求。传统翻译方案依赖大型云端模型或商业API&…

作者头像 李华
网站建设 2026/5/1 20:06:03

Atlas-OS环境下MSI安装包2203错误的全面诊断与修复指南

Atlas-OS环境下MSI安装包2203错误的全面诊断与修复指南 【免费下载链接】Atlas &#x1f680; An open and lightweight modification to Windows, designed to optimize performance, privacy and security. 项目地址: https://gitcode.com/GitHub_Trending/atlas1/Atlas …

作者头像 李华
网站建设 2026/5/3 2:23:48

Base2048编码:突破Twitter数据传输限制的终极指南

Base2048编码&#xff1a;突破Twitter数据传输限制的终极指南 【免费下载链接】base2048 Binary encoding optimised for Twitter 项目地址: https://gitcode.com/gh_mirrors/ba/base2048 &#x1f680; 你是否曾经想要在一条简单的Twitter消息中传输更多的数据&#xf…

作者头像 李华