LeetCode刷题---反转链表II

news2024/11/19 22:36:16

在这里插入图片描述在这里插入图片描述
LeetCode官方给出的解题思路

在需要反转的区间里,每遍历到一个节点,让这个新节点来到反转部分的起始位置。
使用了三指针的思想。
定义三个节点:
curr:指向待反转区域的第一个节点 left;
next:永远指向 curr 的下一个节点,循环过程中,curr 变化以后 next 会变化;
pre:永远指向待反转区域的第一个节点 left 的前一个节点,在循环过程中不变。

在这里插入图片描述

先将 curr 的下一个节点记录为 next;
执行操作 ①:把 curr 的下一个节点指向 next 的下一个节点;
执行操作 ②:把next 的下一个节点指向 pre 的下一个节点;
执行操作 ③:把 pre 的下一个节点指向 next。

 public ListNode reverseBetween(ListNode head, int left, int right) {
        ListNode dummy=new ListNode(0);
        dummy.next=head;
        ListNode pre=dummy;

        for(int i=0;i<left-1;i++) pre=pre.next;
        ListNode cur=pre.next;

        for(int i=0;i<right-left;i++)
        {
            //使用头插法
            ListNode tmp=cur.next;
            cur.next=tmp.next;
            tmp.next=pre.next;
            pre.next=tmp;

        }

        return dummy.next;
    }

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

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

相关文章

怎样实现安全便捷的网间数据安全交换?

数据安全交换是指在数据传输过程中采取一系列措施来保护数据的完整性、机密性和可用性。网间数据安全交换&#xff0c;则是需要进行跨网络、跨网段甚至跨组织地进行数据交互&#xff0c;对于数据的传输要求会更高。 大部分企业都是通过网闸、DMZ区、VLAN、双网云桌面等方式实现…

电脑软件:沙盒 Sandboxie 快速上手使用教程

目录 一、软件简介 二、软件功能 三、安装步骤 四、 软件使用 一、软件简介 沙盘Sandboxie中文版是一款非常好用的系统安全工具软件&#xff0c;沙盘Sandboxie中文版能够很好的进行安全测试&#xff0c;拥有一个安全的环境&#xff0c;你不用担心自己的浏览记录被曝光&am…

用 YAML 文件配置 CI/CD 管道

MSBuild 参数: 在使用 MSBuild 命令行生成打包项目(就像在 Visual Studio 中使用向导生成项目一样)之前,生成过程可以通过编辑 Package.appxmanifest 文件中 Package 元素的 Version 属性,来对生成的 MSIX 包进行版本控制。 在 Azure Pipelines 中,可以使用某个表达式来…

【第七在线】打破传统束缚:智能商品计划助力服装企业创新发展

在当今快速变化的市场环境中&#xff0c;服装企业面临着前所未有的挑战和机遇。传统的商品管理模式已无法满足现代市场的需求&#xff0c;企业需要寻求创新的发展路径。智能商品计划作为数字化转型的核心要素&#xff0c;正在为服装企业提供强大的助力&#xff0c;帮助企业打破…

linux基础学习(2):磁盘管理、分区、格式化

1.一些基本概念 一块磁盘从加入到可使用&#xff0c;需要经过3个阶段&#xff1a;分区-格式化-挂载。 1.1分区方式 linux有2种分区方式&#xff1a; &#xff08;1&#xff09;mbr&#xff1a;最大支持2.1T硬盘&#xff0c;最多支持4个分区。这4个分区可以全部为主分区&…

基于位的权限系统

基于位的权限系统是一种利用二进制位运算进行权限管理的技术。在这种系统中&#xff0c;不同的权限被编码为2的幂次方 (例如1、2、4、8等)&#xff0c;每个权限对应一个独立的二进制位&#xff08;可想而知运算速度是非常快的&#xff09;。通过将这些权限值组合在一起形成一个…

[ceph] ceph之分布式存储

分布式存储的类型 ●块存储&#xff08;例如硬盘&#xff0c;一般是一个存储被一个服务器挂载使用&#xff0c;适用于容器或虚拟机存储卷分配、日志存储、文件存储&#xff09; 就是一个裸设备&#xff0c;用于提供没有被组织过的存储空间&#xff0c;底层以分块的方式来存储数…

04-《人月神话》有礼貌的固执-中译本纠错及联想

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 2001年&#xff0c;我们翻译《人月神话》的时候&#xff0c;由于水平有限&#xff0c;译文中存在不少错误。 这些年&#xff0c;随着阅历的增长&#xff0c;在重读的时候偶尔也会有“…

Python GUI库大汇总

所有程序都是基于命令行的&#xff0c;这些程序可能只有一些“专业”的计算机人士才会使用。例如前面编写的五子棋等程序&#xff0c;恐怕只有程序员自己才愿意玩这么“糟糕”的游戏&#xff0c;很少有最终用户愿意对着黑乎乎的命令行界面敲命令。 相反&#xff0c;如果为程序…

Kafka 的 Consumer Group 解读

作为一份笔记&#xff0c;本文再次梳理一下 Kafka 的 Consumer Group。我们知道&#xff0c;一个 Topic 往往会有多个 Partition&#xff0c;一条消息只会被写到一个 Kafka 的 Partition 中&#xff0c;那 Consumer 是怎么消费 Message 的呢&#xff1f; Consumer Group 又从中…

Linux用户提权

新建用户 用root账户修改文件&#xff0c;添加信任用户 使用sudo提权&#xff0c;可以使用 **root删除新建账户**

写点东西《最佳 Web 框架不存在 》

写点东西《&#x1f947;最佳 Web 框架不存在 &#x1f6ab;》 TLDR&#xff1b;您选择的 Web 应用程序框架并不重要。嗯&#xff0c;它很重要&#xff0c;但并不像其他人希望您相信的那样重要。 2024 年存在如此多的库和框架&#xff0c;而且最好的库和框架仍然备受争议&…

Java_线程池

一、线程池 4.1 线程池概述 线程池就是一个可以复用线程的技术。 要理解什么是线程复用技术&#xff0c;我们先得看一下不使用线程池会有什么问题&#xff0c;理解了这些问题之后&#xff0c;我们在解释线程复用同学们就好理解了。 假设&#xff1a;用户每次发起一个请求给…

硬盘重新分区怎么恢复分区之前的文件?

分区是常见的故障&#xff0c;通常由多种原因引起。一方面&#xff0c;硬盘老化或者受到损坏可能会导致分区表出现问题&#xff1b;另一方面&#xff0c;用户误操作&#xff0c;如格式化或分区不当&#xff0c;也可能导致分区丢失。针对此问题&#xff0c;解决方法包括使用专业…

无人超市系统的设计与实现:从需求分析到实际应用

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

在vue3+vite中使用svg-sprite-loader,antdv修改菜单icon

1. 安装 npm install vite-plugin-svg-icons -D 2. 在vite.config.js的plugins中添加配置项 import { createSvgIconsPlugin } from vite-plugin-svg-icons;createSvgIconsPlugin({iconDirs: [resolve(process.cwd(), src/components/svgIcon/svg)], // icon存放的目录&…

Android系统启动-Zygote详解(Android 14)

一、什么是Zygote 在上一篇文章Android系统启动-init进程详解&#xff08;Android 14&#xff09;中&#xff0c;分析了init进程&#xff0c;在init进程启动的第二阶段会解析init.*.rc文件&#xff0c;启动多个进程&#xff0c;其中包括Zygote。 Zygote又叫孵化器&#xff0c…

线性布局LinearLayout

<?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-auto"xmlns:tools"http://schemas.android.com/too…

在linux环境下安装lnmp

lnmp官网&#xff1a;https://lnmp.org 一&#xff1a;lnmp安装 参考&#xff1a;https://lnmp.org/install.html 1&#xff1a;下载lnmp安装包 wget https://soft.lnmp.com/lnmp/lnmp2.0.tar.gz -O lnmp2.0.tar.gz 2&#xff1a;解压lnmp安装包 tar zxf lnmp2.0.tar.gz …

【PHP】PHP利用ffmreg获取音频、视频的详细信息

目录 一、目的 二、下载并安装ffmreg 三、PHP代码 四、运行结果 一、目的 使用PHP利用ffmreg获取音频、视频的详细信息&#xff0c;音视频总时长、码率、视频分辨率、音频编码、音频采样频率、实际播放时间、文件大小。 二、下载并安装ffmreg 1、下载地址&#xff1a;htt…