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; } };

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1165054.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

救命神器10个AI论文软件,专科生毕业论文救星!

救命神器10个AI论文软件&#xff0c;专科生毕业论文救星&#xff01; AI 工具的崛起&#xff0c;让论文写作不再难 在当前的学术环境中&#xff0c;越来越多的专科生开始借助 AI 工具来完成毕业论文的撰写。这些工具不仅能够帮助学生快速生成内容&#xff0c;还能有效降低 AIGC…

大模型推理知识点总结

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

从「宅家创作」到「移动创作」:利用cpolar实现Stable Diffusion WebUI 远程使用的改造方案

✨道路是曲折的&#xff0c;前途是光明的&#xff01; &#x1f4dd; 专注C/C、Linux编程与人工智能领域&#xff0c;分享学习笔记&#xff01; &#x1f31f; 感谢各位小伙伴的长期陪伴与支持&#xff0c;欢迎文末添加好友一起交流&#xff01; “AI创作自由套餐”的教程已经为…

C# winform部署yolo26-pose姿态估计关键点的onnx模型演示源码+模型+说明

yolo26已经正式发布了&#xff0c;因此使用C#代码实现YOLO26-pose姿态估计的onnx模型部署&#xff0c;首先看yolo11n-pose网络结构&#xff0c;发现输出shape是1x56x8400再来看看yolo26n-pose网络结构输出&#xff0c;输出shape是1x300x57可见yolo11和yolo26输出是不一样的是不…

VAOne测量两个节点之间的距离

VAOne忘记了建模节点之间的距离&#xff1f;试试这样做&#xff01; 文章目录VAOne忘记了建模节点之间的距离&#xff1f;试试这样做&#xff01;1. 几何模型创建2. 节点距离测量1. 几何模型创建 Step 1: 选择Scripts中的SEA Utilities中的Create中的Create Cube快速创建立方体…

深度测评研究生必用8款一键生成论文工具

深度测评研究生必用8款一键生成论文工具 2026年研究生论文写作工具测评&#xff1a;精准匹配学术需求的高效助手 在当前学术研究日益精细化、智能化的背景下&#xff0c;研究生群体对论文写作工具的需求也愈发多元化。从选题构思到文献综述&#xff0c;从内容生成到格式排版&am…

多智能体架构选型攻略:从单Agent到复杂系统的演进之路(建议收藏)

本文深入探讨多智能体架构选型逻辑&#xff0c;分析单Agent在上下文管理和分布式开发中的局限&#xff0c;对比四种主流架构&#xff1a;子智能体(集中式)、技能(渐进式)、交接(状态驱动)和路由器(并行)。通过场景分析指出&#xff0c;架构选择应基于业务需求&#xff0c;从简单…

AIGNE框架:基于文件系统抽象的大模型上下文工程解决方案

本文提出借鉴Unix"一切皆文件"理念的文件系统抽象架构&#xff0c;解决GenAI和智能体系统上下文工程问题。架构包括持久化上下文仓库和上下文工程流水线&#xff08;构造器、更新器、评估器&#xff09;&#xff0c;通过AIGNE框架实现&#xff0c;满足令牌窗口、无状…

大模型完整学习路线图:从入门到精通_大模型学习路线(2026最新)

本文提供了大模型学习的七个阶段路线图&#xff1a;1)基础知识准备(数学与编程)&#xff1b;2)机器学习基础&#xff1b;3)深度学习入门&#xff1b;4)自然语言处理基础&#xff1b;5)大规模语言模型&#xff1b;6)模型应用&#xff1b;7)持续学习与进阶。每个阶段详细列出了核…

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

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

数据建模在大数据领域的金融风险评估应用

数据建模在大数据领域的金融风险评估应用 关键词:数据建模、大数据、金融风险评估、模型构建、风险预测 摘要:本文聚焦于数据建模在大数据领域的金融风险评估应用。首先介绍了相关背景,包括目的、预期读者等内容。接着详细解释了数据建模、大数据、金融风险评估等核心概念,…

01-15 11:29:05.724 21988 21988 E Zygote : java.lang.IllegalStateException: Signature|privileged perm

01-15 11:29:05.724 21988 21988 E Zygote : java.lang.IllegalStateException: Signature|privileged permissions not in privileged permission allowlist: {com.launcher (/system/priv-app/debug): android.permission.CLEAR, 凡是你在 AndroidManifest.xml 里申请了&…

VLMEvalKit:大模型评测神器,一行命令让AI排队“考试“

VLMEvalKit是一款专为多模态大模型设计的开源评测工具&#xff0c;它统一了评测标准&#xff0c;使不同模型可在相同条件下公平对比。该工具支持200模型和70基准测试&#xff0c;覆盖图像、视频、医疗、自动驾驶等多场景应用。用户只需一行代码即可完成模型评测&#xff0c;系统…

Oracle 19c入门学习教程,从入门到精通,Oracle管理工具 —— 知识点详解(3)

Oracle管理工具 一、需求理解 基于Oracle 19c第3章“Oracle管理工具”的核心内容&#xff08;涵盖SQL*Plus、SQL Developer、OEM、DBCA&#xff09;&#xff0c;整理一份包含工具安装/配置过程、核心使用语法及案例的教程&#xff0c;每个知识点配套带详细注释的实操代码&#…

RAG评估完整指南:12个核心指标+5步落地流程,让你的检索增强生成系统不再“答非所问“

本文详细介绍了RAG评估体系的构建方法&#xff0c;从检索层、生成层、端到端和业务层四个维度&#xff0c;提出了12个核心指标及优化方向。文章推荐了RAGAS、TruLens等评估工具&#xff0c;并提供了从测试集构建到生产监控的完整落地流程。通过"数据驱动&#xff0c;持续迭…

告别AI agent“金鱼脑“!CaveAgent框架让你的AI过目不忘,效率翻倍

CaveAgent采用"双流架构"解决AI记忆力问题&#xff1a;语义流作为轻量大脑负责推理&#xff0c;运行流作为持久记忆存储数据。这种设计使AI能长期保存数据&#xff0c;避免上下文限制&#xff0c;高效处理大数据&#xff0c;减少28.4%的Token消耗&#xff0c;提升任务…

AIGC检测过不了?收藏这份降AI工具红黑榜就够了

title: “AIGC检测过不了&#xff1f;收藏这份降AI工具红黑榜就够了” slug: “aigc-detection-ai-reduction-tools-ranking” date: 2026-01-15 author: “论文降AI研究院” tags: [“AIGC检测工具”, “降AI工具红黑榜”, “降AI工具推荐”, “降AI工具避坑”, “AIGC检测通过…

“亿” 马当先 乘风而起 | 世冠科技 2026 主题年会精彩回顾

近日&#xff0c;世冠科技隆重召开“‘亿’马当先&#xff0c;乘风而起”2026主题年会。会议系统复盘了公司过去一年的发展成果&#xff0c;精准锚定2026年战略方向&#xff0c;凝聚全员共识&#xff0c;共启全新征程。复盘过往 锚定前路——以战略定力指引发展方向 年会伊始&…

救命神器!专科生毕业论文必备TOP8 AI论文平台测评

救命神器&#xff01;专科生毕业论文必备TOP8 AI论文平台测评 2026年专科生毕业论文AI平台测评&#xff1a;为何需要这份榜单&#xff1f; 随着人工智能技术的不断发展&#xff0c;越来越多的专科生开始借助AI工具辅助完成毕业论文写作。然而&#xff0c;面对市场上五花八门的论…

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

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