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

92. 反转链表 II

题目描述

给你单链表的头指针 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]

提示:

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

代码

 

/*** 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 *dummy = new ListNode(0);dummy->next = head;ListNode *pre = dummy;// 找到left位置的前一个节点for(int i = 1; i < left; i++) {pre = pre->next;}// `start`是需要反转的第一个节点ListNode *start = pre->next;// `then`是需要反转的节点的下一个节点ListNode *then = start->next;// 进行反转操作,将`start`到`right`位置的节点反转for(int i = 0; i < right - left; i++) {start->next = then->next;then->next = pre->next;pre->next = then;then = start->next;}// 返回新的头节点return dummy->next;}
};

http://www.lryc.cn/news/355638.html

相关文章:

  • Modbus工业网关
  • c++——模板初始识
  • 帆软生成csv文件
  • 12.Redis之补充类型渐进式遍历
  • 品牌做电商控价的原因
  • 安全面试中的一个基础问题:你如何在数据库中存储密码?
  • 【python深度学习】——torch.min()
  • 华为校招机试 - 最久最少使用缓存(20240508)
  • 第三部分:领域驱动设计之分析模式和设计模式应用于模型
  • PID传感器在光电显示行业VOC气体检测的应用
  • iOS推送证书过期处理
  • 蓝海卓越计费管理系统 agent_setstate.php SQL注入漏洞复现
  • 【leetcode2765--最长交替子数组】
  • java文档管理系统的设计与实现源码(springboot+vue+mysql)
  • 西安航空学院电子工程学院领导莅临泰迪智能科技参观交流
  • C++|设计模式(二)|简单工厂和工厂方法模式
  • C语言从头学12——流程控制(一)
  • 10大领域应该怎么记?
  • 通过Ubuntu虚拟机+Linux移植LVGL并通过linux Frame buffer显示
  • M功能-支付平台(三)
  • 5G工厂长啥样
  • 使用Python操作Jenkins
  • 网络协议测试仪设计方案:474-便携式手提万兆网络协议测试仪
  • 使用numpy手写一个神经网络
  • 使用Spring AOP实现接口参数变更前后对比和日志记录
  • 免费无限换脸,火了,图片/视频/直播都行!
  • 无线领夹麦克风哪个品牌好?本期文章揭秘无线麦克风哪个品牌好用
  • 操作系统实验--终极逃课方法
  • C语言实现正弦信号扫频
  • 实用篇| huggingface网络不通