《算法通关村第二关——指定区间反转问题解析》
《算法通关村第二关——指定区间反转问题解析》
题目描述
给你单链表的头指针head和两个整数left和right,其中left <= right 。 请你反转从位置left到位置right的链表节点,返回反转后的链表。
示例1:
输入: head = [1,2,3,4,5],left = 2, right = 4
输出: [1,4,3,2,5]
头插法
通过一个一个插入前面进行反转。

代码:
/*** 头插法指定区间反转* @param head* @param start就是题中的left* @param end 题中的right* @return*/
public static LinkedNode ReverseSpecificInterval1(LinkedNode head , int start,int end){// 设置dummyNode 是这类问题的一般解法LinkedNode dummyNode = new LinkedNode(-1);dummyNode.setNext(head);LinkedNode pre = dummyNode;for(int i = 0 ; i < start - 1 ; i++){pre = pre.getNext();}LinkedNode cur = pre.getNext();LinkedNode next = null;for(int i = 0 ;i < end-start ; i++){next = cur.getNext();cur.setNext(next.getNext());next.setNext(pre.getNext());pre.setNext(next);}return dummyNode.getNext();
}
穿针引线法
通过把指定区间提取出来,然后进行反转,最后再接回原链表的方法。

上代码:
/*** 穿针引线* @param head* @param start* @param end* @return*/public static LinkedNode ReverseSpecificInterval2(LinkedNode head,int start , int end){// 因为头节点可能发生变化,使用虚拟头节点可以便面复杂的分类讨论LinkedNode dummyNode = new LinkedNode(-1);dummyNode.setNext(head);LinkedNode pre = dummyNode;// 第一步,从虚拟头节点走start-1步,来到start节点的前一个结点。for ( int i = 0 ; i < start -1 ; i++){pre = pre.getNext();}// 第二步,从pre 再走end-start+1步来到end节点LinkedNode endNode = pre;for(int i = 0 ; i < end-start+1 ; i++){endNode = endNode.getNext();}// 第三步切出一个子链LinkedNode startNode = pre.getNext();LinkedNode succ = endNode.getNext();endNode.setNext(null);// 第四步反转链表reverseLinkedList(startNode);// 第五步,接回原来的链表pre.setNext(endNode);startNode.setNext(succ);return dummyNode.getNext();}private static void reverseLinkedList(LinkedNode startNode) {LinkedNode pre = null ;LinkedNode cur = startNode;while(cur != null){LinkedNode next = cur.getNext();cur.setNext(pre);pre = cur;cur = next;}}
近期在自学 Java 做项目,加入了一个编程学习圈子,里面有编程学习路线和原创的项目教程,感觉非常不错。还可以 1 对 1 和大厂嘉宾交流答疑,也希望能对大家有帮助,扫 ⬇️ 二维码即可加入。

也可以点击链接:我正在「编程导航」和朋友们讨论有趣的话题,你⼀起来吧?
相关文章:
《算法通关村第二关——指定区间反转问题解析》
《算法通关村第二关——指定区间反转问题解析》 题目描述 给你单链表的头指针head和两个整数left和right,其中left < right 。 请你反转从位置left到位置right的链表节点,返回反转后的链表。 示例1: 输入: head [1,2,3,4,5…...
掌控安全Update.jsp SQL注入
0x01 漏洞介绍 亿赛通电子文档安全管理系统是国内最早基于文件过滤驱动技术的文档加解密产品之一,保护范围涵盖终端电脑(Windows、Mac、Linux系统平台)、智能终端(Android、IOS)及各类应用系统(OA、知识管理…...
C#将图片转换为ICON格式(程序运行图标)
介绍: C#创建窗体项目后左上角有显示图标,这个图标会在运行的时候显示在下面进程这里,但是必须是ico格式的图片才可以导入使用。以下是将图片打开后保存为ico格式代码。 代码如下: main函数测试 new 将图片转换成icon格式(&qu…...
ELK架构Logstash的相关插件:grok、multiline、mutate、date的详细介绍
文章目录 1. grok (正则捕获插件)1.1 作用1.2 正则表达式的类型1.2.1 内置正则表达式1.2.2 自定义正则表达式 2. mutate (数据修改插件)2.1 作用2.2 常见配置选项2.3 应用实例 3. multiline (多行合并插件)3.1 作用3.2 常用配置项及示例3.2.1…...
linux 防火墙介绍以及iptables的使用
背景介绍 在前几天,于工发现我们内部的150服务器7554端口被外网访问了。该应用提供着内部的摄像头资源。为了避免被入侵,于是我添加了一些iptables规则,防止外网的访问。 解决方式 解决方式有两种: 关闭公司公网路由器对150服务…...
原码、反码、补码在汇编中的应用
原文章:知乎 原码和二进制类似,不过它有符号位。正数符号位为0,负数为1 。 例:40000 0100 ,-41000 0100 原码是人脑最容易理解和计算的表示方式。 但是这在计算机中计算就出了问题,这两个(4…...
【红日靶场】vulnstack5-完整渗透过程
系列文章目录 【红日靶场】vulnstack1-完整渗透过程 【红日靶场】vulnstack2-完整渗透过程 【红日靶场】vulnstack3-完整渗透过程 【红日靶场】vulnstack4-完整渗透过程 文章目录 系列文章目录描述虚拟机密码红队思路 一、环境初始化二、开始渗透外网打点上线cs权限提升域信息…...
嵌入式平台的电源总结
本文引注: https://mp.weixin.qq.com/s/PuSxHDFbJjjHEReukLSvyg 1.AC的定义 Alternating Current(交流)的首字母缩写。AC是大小和极性(方向)随时间呈周期性变化的电流。电流极性在1秒内的变化次数被称为频率,以Hz为单位…...
@Binds methods must be abstract 报错指南
bindings方法必须是抽象的 Binds使用错误...
自定义反序列化类将LocalDate时间格式转为 LocalDateTime
从前端接收数据反序列化成类,如果时间格式不一致可能会反序列化失败 public class StorageDTO implements Serializable {private static final long serialVersionUID 1L;......//实体类中格式为JsonFormat(pattern "yyyy-MM-dd")JsonDeserialize(using CustomL…...
MySQL JSON_TABLE() 函数
JSON_TABLE()函数从一个指定的JSON文档中提取数据并返回一个具有指定列的关系表。 应用:数据库字段以JSON 存储后,实际应用需要对其中一个字段进行查询 语法 JSON_TABLE(json,path COLUMNS(column[,column[,...]]))column:name参数 json必需的。一个 …...
【MATLAB第80期】基于MATLAB的结构核岭回归SKRR多输入单输出回归预测及分类预测模型
【MATLAB第80期】基于MATLAB的结构核岭回归SKRR多输入单输出回归预测及分类预测模型 SKRR这是Gustau Camps-Valls等人在“用深度结构核回归检索物理参数”中提出的结构核岭回归(SKRR)方法。 参考文献: Camps-Valls,Retrieval of Physical Pa…...
Qt消息对话框的使用
本文介绍Qt消息对话框的使用。 QMessageBox类是Qt编程中常用到的一个类,主要用来进行一些简单的消息提示,比如:问题对话框,信息对话框等,这些对话框都属于QMessageBox类的静态方法,使用起来比较简单&#…...
spring的Ioc、DI以及Bean的理解
文章目录 什么是Ioc?Spring和这有什么关系Spring是怎么做的?如果service层对dao层有依赖该怎么办?什么叫做依赖注入Spring这样做的目的是什么参考文献 什么是Ioc? Ioc(Inversion of Control) 控制反转,就是使用对象时…...
倒计时 天时分秒
shijian() {const EndTIME new Date(开始时间变量); // 截止时间const NowTime new Date(); // 开始时间const usedTime EndTIME - NowTime; // 相差的毫秒数const days Math.floor(usedTime / (24 * 3600 * 1000)); // 计算出天数const leavel usedTime % (24 * 3600 * 1…...
Spring篇---第六篇
系列文章目录 文章目录 系列文章目录一、Spring 框架中的单例 Bean 是线程安全的么?二、Spring 是怎么解决循环依赖的?三、说说事务的隔离级别一、Spring 框架中的单例 Bean 是线程安全的么? Spring 框架并没有对单例 Bean 进行任何多线程的封装处理。 关于单例 Bean 的线程…...
【unity小技巧】适用于任何 2d 游戏的钥匙门系统和buff系统——UnityEvent的使用
文章目录 每篇一句前言开启配置门的开启动画代码调用,控制开启门动画 新增CollisionDetector 脚本,使用UnityEvent ,控制钥匙和门的绑定多把钥匙控制多个门一把钥匙控制多个门 BUFF系统扩展参考源码完结 每篇一句 人总是害怕去追求自己最重要…...
爬虫ip如何加入到代码里实现自动化数据抓取
以下是一个使用HTTP:Tiny和www.weibo.com的音频爬虫程序的示例。这个示例使用了https://www.duoip.cn/get_proxy来获取爬虫IP。请注意,这个示例可能需要根据你的实际需求进行调整。 #!/usr/bin/perluse strict; use warnings; use HTTP::Tiny; use LWP::UserAgent; …...
在win10上安装配置Hadoop的环境变量
一、背景 在windows10系统中运行seatunnel 二、安装部署 2.1. 下载 Hadoop包 从 Apache Hadoop 官网下载最新版本的 Hadoop,版本号保持与服务端的Hadoop版本一致。 https://hadoop.apache.org/releases.htmlIndex of /apache/hadoop/core/hadoop-3.2.3/ 2.2. 解…...
MAX插件CG Magic怎么云渲染?操作方法已整起!
小编这里会收到不少网友的反馈是关于3ds max插件CG Magic怎么云渲染? 3d max的这款插件CG MAGIC的出现就是为了设计师使用过程中,可以省时又省心的完成工作。 同时,大家要了键下,现阶段CG MAGIC有18个板块,118个模块…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏
一、引言 在深度学习中,我们训练出的神经网络往往非常庞大(比如像 ResNet、YOLOv8、Vision Transformer),虽然精度很高,但“太重”了,运行起来很慢,占用内存大,不适合部署到手机、摄…...
论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving
地址:LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂,正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...
leetcode_69.x的平方根
题目如下 : 看到题 ,我们最原始的想法就是暴力解决: for(long long i 0;i<INT_MAX;i){if(i*ix){return i;}else if((i*i>x)&&((i-1)*(i-1)<x)){return i-1;}}我们直接开始遍历,我们是整数的平方根,所以我们分两…...
js 设置3秒后执行
如何在JavaScript中延迟3秒执行操作 在JavaScript中,要设置一个操作在指定延迟后(例如3秒)执行,可以使用 setTimeout 函数。setTimeout 是JavaScript的核心计时器方法,它接受两个参数: 要执行的函数&…...
