news 2026/4/8 13:27:36

day131—链表—反转链表Ⅱ(区域反转)(LeetCode-92)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
day131—链表—反转链表Ⅱ(区域反转)(LeetCode-92)

题目描述

给你单链表的头指针head和两个整数leftright,其中left <= right。请你反转从位置left到位置right的链表节点,返回反转后的链表

示例 1:

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

示例 2:

输入:head = [5], left = 1, right = 1输出:[5]

提示:

  • 链表中节点数目为n
  • 1 <= n <= 500
  • -500 <= Node.val <= 500
  • 1 <= left <= right <= n

解决方案:

这段代码的核心功能是反转单链表中指定区间 [left, right] 内的节点(比如原链表 1→2→3→4→5,left=2、right=4 时,反转后为 1→4→3→2→5),采用「迭代法 + 虚拟头节点」实现,时间复杂度O(n)、空间复杂度O(1),是区间反转链表的经典解法。

核心逻辑

代码通过 “定位反转起点 + 局部反转 + 重新连接” 三步完成区间反转,核心是用虚拟头节点规避头节点反转的边界问题:

  1. 虚拟头节点与定位前驱:创建虚拟头节点dx指向原链表头,先找到反转区间的前驱节点p0(即 left 位置的前一个节点),避免反转头节点时的空指针问题;
  2. 局部区间反转:以p0->next为起点,用pre/cur/nxt三个指针,迭代反转 [left, right] 范围内的节点(反转逻辑和完整反转链表一致);
  3. 重新连接链表:反转完成后,将原反转起点的节点(现在是反转区间的尾节点)指向反转区间后的第一个节点cur,再将p0指向反转区间的新头节点pre,恢复链表完整性;
  4. 返回结果:最终返回虚拟头节点的next(即新链表的头节点)。

总结

  1. 核心思路:用虚拟头节点简化边界处理,先定位反转区间前驱,再局部反转,最后重新拼接链表;
  2. 关键操作:反转后p0->next->next = curp0->next = pre是重新连接链表的核心,避免区间反转后链表断裂;
  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* reverseBetween(ListNode* head, int left, int right) { ListNode dx(0,head); ListNode* p0=&dx; for(int i=0;i<left-1;i++){ p0=p0->next; }//到达反转区域的前一个结点:p0 ListNode* nxt=nullptr; ListNode* pre=nullptr; ListNode* cur=p0->next;//反转的起始节点:p0->next for(int i=0;i<right-left+1;i++){ nxt=cur->next; cur->next=pre; pre=cur; cur=nxt; } p0->next->next=cur; p0->next=pre; return dx.next; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/29 11:41:02

大模型推理知识点总结

一、 大模型推理的基本概念 先明确一个核心问题&#xff1a;什么是大模型推理&#xff1f; 简单来说&#xff0c;推理就是给定一个输入&#xff08;比如一段文字指令&#xff09;&#xff0c;让训练完成的大模型通过前向计算&#xff0c;输出符合预期结果的过程。这个过程和模型…

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

芒格的“关键少数“原则在量子科技人才投资中的应用

芒格的“关键少数”原则在量子科技人才投资中的应用关键词&#xff1a;芒格、关键少数原则、量子科技、人才投资、应用策略摘要&#xff1a;本文深入探讨了芒格的“关键少数”原则在量子科技人才投资领域的应用。首先介绍了背景信息&#xff0c;包括研究目的、预期读者等内容。…

作者头像 李华
网站建设 2026/3/20 7:01:52

大模型学习路线图:程序员必备收藏,从入门到实战全覆盖_大模型学习路线(2026最新)

本文提供了一份完整的大模型学习路线图&#xff0c;分为七个阶段&#xff1a;基础知识准备、机器学习基础、深度学习入门、自然语言处理基础、大规模语言模型、应用实践和持续进阶。每个阶段详细列出了核心知识点和推荐学习资源&#xff0c;包括经典书籍、论文和在线课程&#…

作者头像 李华
网站建设 2026/4/5 16:41:19

豆包/Kimi写论文后AI率太高?这几款工具一键搞定

title: “豆包/Kimi写论文后AI率太高&#xff1f;这几款工具一键搞定” slug: “doubao-kimi-paper-ai-rate-reduction-tools” date: 2026-01-15 author: “论文降AI攻略” tags: [“豆包写论文降AI”, “Kimi论文AI率高”, “AI写作降AI工具”, “豆包降AI”, “Kimi降AI率”…

作者头像 李华
网站建设 2026/4/2 18:35:43

2026年最值得入手的8款降AI神器,亲测第3款效果炸裂

2026年最值得入手的8款降AI神器&#xff0c;亲测第3款效果炸裂 TL;DR&#xff1a;2026年知网AIGC检测系统升级后&#xff0c;传统降重方法已经失效。本文实测8款主流降AI工具&#xff0c;重点推荐嘎嘎降AI&#xff08;达标率99.26%&#xff09;和比话降AI&#xff08;知网AI率可…

作者头像 李华