当前位置: 首页 > news >正文

力扣刷题:反转链表Ⅱ

题目:
给你单链表的头指针 head 和两个整数 left 和 right ,其中 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]

解析:
这道题跟反转链表1的思路是一样的,无非在这里需要设置一个虚拟的头部节点,方便重新连接的操作

具体代码:

/** * 反转链表从第left个节点到第right个节点的部分 * @param {ListNode} head - 链表头节点 * @param {number} left - 起始位置(从1开始计数) * @param {number} right - 结束位置 * @return {ListNode} - 反转后的链表头节点 */varreverseBetween=function(head,left,right){// 创建虚拟头节点,简化边界情况处理(特别是当left=1时)constdummy=newListNode(0,head)// p0指针将指向要反转部分的前一个节点letp0=dummy// 移动p0到要反转部分的前一个节点// 例如:left=2时,p0需要移动到第1个节点for(leti=0;i<left-1;i++){p0=p0.next}// 准备反转链表的核心指针letpre=null// pre指向已反转部分的头节点letcur=p0.next// cur指向当前要反转的节点(第left个节点)// 反转从left到right的链表部分// 需要反转的节点数量:right-left+1for(leti=0;i<right-left+1;i++){// 保存当前节点的下一个节点consttemp=cur.next// 反转:当前节点指向已反转部分cur.next=pre// 移动pre指针到当前节点(扩展已反转部分)pre=cur// 移动cur指针到下一个待反转节点cur=temp}// 循环结束后:// - pre指向反转后的新头节点(原第right个节点)// - cur指向未反转部分的首节点(原第right+1个节点)// 关键连接步骤1:将反转部分的尾节点连接到剩余链表// p0.next指向原第left个节点(现在是反转部分的尾节点)// 将其next指向cur(未反转部分的首节点)p0.next.next=cur// 关键连接步骤2:将p0连接到反转部分的新头节点// p0是反转部分的前一个节点,现在连接到反转后的新头节点prep0.next=pre// 返回整个链表的头节点returndummy.next};
http://www.cnnetsun.cn/news/171575.html

相关文章:

  • 2026年证书怪象:企业不认的白考,CAIE持证者薪资反涨?
  • Excalidraw图元元素自定义样式方法
  • 性能提升无从下手?Open-AutoGLM 7个必测指标你掌握了吗?
  • 揭秘Open-AutoGLM一键部署黑科技:如何将上线时间缩短90%
  • Thinkphp和Laravel校园二手书交换捐赠交易系统 微信小程序_f4pwp0e9
  • Excalidraw与Miro、FigJam的差异在哪里?
  • 全网热议!2025年度更佳机房动环监控系统TOP10推荐,助力智能运维新标准
  • Excalidraw安全性评估:是否适合企业级应用?
  • Thinkphp和Laravel瑜伽体验课预约系统_u7m8bgc8
  • Thinkphp和Laravel阳光幼儿园管理系统_2n5f0mr0
  • PHP博物馆文物报修管理系统 文博资源库系统设计_833854yv
  • Thinkphp和Laravel网络小说在线阅读网站的设计与实现_6161u1b9
  • 13、Windows 8 数字媒体娱乐全攻略
  • Excalidraw使用技巧大全:提升团队协作效率的秘诀
  • 19、轻松收发邮件:Windows 8 邮件应用与 Windows Live Mail 全攻略
  • 23、Windows 8 使用与桌面个性化设置全攻略
  • Thinkphp和Laravel在线诊断问诊系统的设计与实现
  • Excalidraw图层管理功能使用技巧
  • Excalidraw能否替代Visio?详细功能对比分析
  • 【Linux】Linux进程状态深度解析
  • 10、深入了解Windows XP打印功能
  • 神级插件,一键解suo,低调使用!
  • Excalidraw用户反馈收集渠道优化
  • Open-AutoGLM到底有多强?3个真实案例看懂账单自动归类的革命性突破
  • Excalidraw订阅价格体系设计逻辑
  • 15、Windows 2000 驱动程序测试与调试全解析
  • 基于springboot + vue学生请假管理系统(源码+数据库+文档)
  • 基于java + vue养老院管理系统(源码+数据库+文档)
  • 基于java + vue教育资源共享平台系统(源码+数据库+文档)
  • 基于java + vue校园便利平台系统(源码+数据库+文档)