【LeetCode刷题-链表】--92.反转链表II

news2025/1/22 9:16:54

92.反转链表II

image-20231206230110800

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode reverseBetween(ListNode head, int left, int right) {
      ListNode dummy = new ListNode(0);
      dummy.next = head;
      ListNode pre = dummy;
      // 第 1 步:从虚拟头节点走 left - 1 步,来到 left 节点的前一个节点
      for(int i = 0;i<left-1;i++){
        pre = pre.next;
      }
      // 第 2 步:从 pre 再走 right - left + 1 步,来到 right 节点
      ListNode rightNode = pre;
      for(int i = 0;i<right - left + 1;i++){
        rightNode = rightNode.next;
      }

       // 第 3 步:切断出一个子链表(截取链表)
      ListNode leftNode = pre.next;
      ListNode cur = rightNode.next;

      pre.next = null;
      rightNode.next = null;

      // 第 4 步:反转链表的子区间
      reverseLinkedList(leftNode);
      
      // 第 5 步:接回到原来的链表中
      pre.next = rightNode;
      leftNode.next = cur;
      return dummy.next;

    }
    public void reverseLinkedList(ListNode head){
      ListNode pre = null;
      ListNode cur = head;
      while(cur != null){
        ListNode next = cur.next;
        cur.next = pre;
        pre = cur;
        cur = next;
      }
    }
}

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

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

相关文章

Java第二十一章网络通信

一、网络程序设计基础 1、局域网与互联网 为了实现两台计算机的通信&#xff0c;必须用一个网络线路连接两台计算机&#xff0c;如下图所示。 2、网络协议 1.IP协议 IP指网际互连协议&#xff0c;Internet Protocol的缩写&#xff0c;是TCP/IP体系中的网络层协议。设计IP的目的…

基于NIQE算法的图像无参考质量评价算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 空域NSS特征提取 4.2 图像块选取 4.3 MVG模型 4.4 NIQE指标 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022a 3.部分核心程序 clc; clear; close all; …

Python推导式详细讲解

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 在Python中&#xff0c;推导式是一种简洁而强大的语法特性&#xff0c;可以用来创建列表、集合、字典等数据结构。本文将深入探讨Python中的三种推导式&#xff1a;列表推导式、集合推导式和字典推导式&#xff…

pytorch中的transpose用法

注意&#xff1a;维数从0开始&#xff0c;0维 1维2维…,负数代表从右往左数&#xff0c;-1代表第一维&#xff0c;以此类推 import torch import numpy as np# 创建一个二维数组 arr torch.tensor([[[1, 2],[3, 4]],[[5, 6],[7, 8]]]) print("原始数组&#xff1a;"…

resnet 图像分类的项目

1. 项目文件 文件下载资源&#xff1a;resnet 图像分类的项目代码 本章利用reset34 作图像分类&#xff0c;包括计算训练集和测试集的loss、accuracy曲线&#xff0c;对训练好的网络在训练集测试集上求混淆矩阵 data 文件为训练集测试集&#xff0c;图像按照文件夹摆放inferenc…

电源滤波器如何检测?ATECLOUD-POWER电源自动测试软件如何助力?

电源滤波器常用来对电源中的纹波和干扰信号进行滤波&#xff0c;从而确保元器件不受损坏&#xff0c;是保证系统稳定性的重要方法。因此电源滤波器测试是非常重要的&#xff0c;通过检测来评估其质量、性能和稳定性&#xff0c;从而使电源滤波器可以稳定工作&#xff0c;进行滤…

HarmonyOS 修改App的默认加载的界面(ArkTS版本)(十七)

根据鸿蒙系统APP的应用生命周期结构&#xff08;鸿蒙4.0开发笔记之ArkTS语法基础之应用生命周期&#xff09;来看。 1、首先在roject/entry/src/main/ets/entryability/EntryAbility.ts文件中找到UI加载函数&#xff1a;onWindowStageCreate(…){…}&#xff0c;然后找到windo…

Jupyter Notebook工具

Jupyter Notebook 是一个交互式的笔记本环境&#xff0c;允许用户以网页形式编写和分享代码、文本、图像以及其它多媒体内容。它支持超过 40 种编程语言&#xff0c;最常用的是 Python。 以下是 Jupyter Notebook 工具的一些特点和用法&#xff1a; 1. 特点&#xff1a; 交互式…

Ubuntu安装过程记录

软件准备 硬件 Acer电脑&#xff0c;AMD a6-440m芯片 64g优盘一个&#xff0c;实际就用了不到5g。 Ubuntu &#xff1a;官网 下载Ubuntu桌面系统 | Ubuntu 下载桌面版Ubuntu 22.04.3 LTS LTS属于稳定版 u盘系统盘制作软件 Rufus &#xff1a;Rufus - 轻松创建 USB 启动…

寻找峰值00

题目链接 寻找峰值 题目描述 注意点 数组可能包含多个峰值&#xff0c;在这种情况下&#xff0c;返回 任何一个峰值 所在位置即可对于所有有效的 i 都有 nums[i] ! nums[i 1]可以假设 nums[-1] nums[n] -∞ 解答思路 可以根据二分查找保证在O(log n)的时间复杂度找到峰…

西工大计算机学院计算机系统基础实验一(函数编写1~10)

还是那句话&#xff0c;千万不要慌&#xff0c;千万不要着急&#xff0c;耐下性子慢慢来&#xff0c;一步一个脚印&#xff0c;把基础打的牢牢的&#xff0c;一样不比那些人差。回到实验本身&#xff0c;自从​​​​​​按照西工大计算机学院计算机系统基础实验一&#xff08;…

Qt-Q_OBJECT宏使用与“无法解析的外部符号qt_metacall/metaObject/qt_metacast“

有时候我们编写Qt类的时候&#xff0c;修改代码时直接加上Q_OBJECT宏&#xff0c;然后直接构建&#xff0c;会报如下错误&#xff1a; 这里的几个函数的声明是由Q_OBJECT宏引入的&#xff0c;而其对应的实现是由moc实现的&#xff0c;如果我们更新了代码但是没有执行qmake&…

自媒体创作辅助工具有哪些?四款必备图文工具推荐

自媒体创作需要有哪些辅助工具&#xff0c;今天我们要探讨的话题是自媒体图文工具&#xff0c;这是我们在打造引人入胜内容时的得力助手。在这个信息过剩的时代&#xff0c;图文内容已经成为自媒体传播的核心。为了使我们的内容脱颖而出&#xff0c;我们需要一些专业的工具来提…

大话数据结构-查找-多路查找树

注&#xff1a;本文同步发布于稀土掘金。 7 多路查找树 多路查找树&#xff08;multi-way search tree&#xff09;&#xff0c;其每个结点的孩子可以多于两个&#xff0c;且每一个结点处可以存储多个元素。由于它是查找树&#xff0c;所有元素之间存在某种特定的排序关系。 …

回溯-组合总和

LeetCode链接 本题k相当于树的深度&#xff0c;9&#xff08;因为整个集合就是9个数&#xff09;就是树的宽度。 例如 k 2&#xff0c;n 4的话&#xff0c;就是在集合[1,2,3,4,5,6,7,8,9]中求 k&#xff08;个数&#xff09; 2, n&#xff08;和&#xff09; 4的组合。 …

分享一个Python网络爬虫数据采集利器

前言 你是否曾为获取重要数据而感到困扰&#xff1f;是否因为数据封锁而无法获取所需信息&#xff1f;是否因为数据格式混乱而头疼&#xff1f;现在&#xff0c;所有这些问题都可以迎刃而解。让我为大家介绍一款强大的数据收集平台——亮数据Bright Data。 作为世界领先的数据…

单周爆售150w+,“不是羽绒服买不起,而是军大衣更有性价比”

拼多多收盘市值超过阿里&#xff0c;成在美中概股市值第一。 截至美股收盘&#xff08;11月30日&#xff09;&#xff0c;拼多多收盘市值超过阿里巴巴&#xff0c;成为在美中概股中的市值第一股。拼多多收涨4.03%&#xff0c;报147.44美元&#xff0c;市值1959亿美元&#xff…

数据中心的操作系统——kubernets

操作系统的功能和模块与 Kubernetes 的功能和模块做了一个对比&#xff1a; Kubernetes 作为数据中心的操作系统还是主要管理数据中心里面的四种硬件资源&#xff1a;CPU、内存、存储、网络。 对于 CPU 和内存这两种计算资源的管理&#xff0c;我们可以通过 Docker 技术完成。…

mybatis-plus框架报错:Invalid bound statement(not found)

查找原因&#xff1a; 如果是第三个地方的错误&#xff0c;错误原因如下&#xff1a; 解决办法&#xff1a; 1、在pom.xml添加 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-pl…