Leetcode24:两两交换链表中的节点

一、题目

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。
示例:

输入:head = [1,2,3,4]
输出:[2,1,4,3]输入:head = []
输出:[]输入:head = [1]
输出:[1]

二、题解

思路:让一个指针指向要交换的两个节点的前一个节点(cur),每次让两个要交换的节点的后一个节点来到cur的后面。cur指针再向前移动两位。直到cur的后一位没有元素(奇数个元素)或者cur的后一位的后一位没有元素(偶数个元素)

因为第一个节点没有前一个元素,所以设置一个虚拟头节点,方便第一个元素和后面的元素能走相同的逻辑。

第一遍循环

第二遍循环

class Solution {public ListNode swapPairs(ListNode head) {ListNode dummy = new ListNode(-1,head);ListNode cur = dummy;while (cur.next!=null && cur.next.next!=null){//暂存ListNode curNext = cur.next;ListNode moveNode = cur.next.next;cur.next.next = cur.next.next.next;moveNode.next = curNext;cur.next = moveNode;//cur去到下下个位置cur = curNext;}return dummy.next;}
}

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

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

相关文章

亲测解决vscode的debug用不了、点了没反应

这个问题在小虎登录vscode同步了设置后出现,原因是launch文件被修改或删除。解决方法是重新添加launch。 坏境配置 win11 + vscode 解决方法 Ctrl + shift + P,搜索debug添加配置: 选择python debugger。 结果生成了一个文件在当前路径: launch内容: {// Use Int…

centos安装inpanel

前置条件 安装python yum -y install python 安装 cd /usr/local git clone https://gitee.com/WangZhe168_admin/inpanel.git cd inpanel python install.py 安装过程需要设置账户 密码 端口号 我设置的是admin:admin 10050 使用 打开浏览器,输入 http://192.168.168.…

AI助力农作物自动采摘,基于YOLOv7【tiny/l/x】不同系列参数模型开发构建作物生产场景下番茄采摘检测计数分析系统

去年十一那会无意间刷到一个视频展示的就是德国机械收割机非常高效自动化地24小时不间断地在超广阔的土地上采摘各种作物,专家设计出来了很多用于采摘不同农作物的大型机械,看着非常震撼,但是我们国内农业的发展还是相对比较滞后的&#xff0…

YOLO-World——超级轻量级开放词汇目标检测方法

前言 目标检测一直是计算机视觉领域中不可忽视的基础挑战,对图像理解、机器人技术和自主驾驶等领域具有广泛应用。随着深度神经网络的发展,目标检测方面的研究取得了显著进展。尽管这些方法取得了成功,但它们存在一些限制,主要体…

Spring Web Header 解析常见错误

在上一章,我们梳理了 URL 相关错误。实际上,对于一个 HTTP 请求而言,URL 固然重要,但是为了便于用户使用,URL 的长度有限,所能携带的信息也因此受到了制约。 如果想提供更多的信息,Header 往往…

Redis(三)(实战篇)

查漏补缺 1.spring 事务失效 有时候我们需要在某个 Service 类的某个方法中,调用另外一个事务方法,比如: Service public class UserService {Autowiredprivate UserMapper userMapper;public void add(UserModel userModel) {userMapper.…

Antd+React+react-resizable实现表格拖拽功能

1、先看效果 2、环境准备 "dependencies": {"antd": "^5.4.0","react-resizable": "^3.0.4",},"devDependencies": {"types/react": "^18.0.33","types/react-resizable": "^…

Linux中有名管道和无名管道

无名管道基础 进程间通信介绍 常用通信方式 无名管道(pipe) 有名管道 (fifo) 信号(signal) 共享内存(mmap) 套接字(socket)过时的IPC通信方式 System V IPC 共享内存(sh…

Windows下Node.js下载安装及环境变量配置教程

Windows下Node.js下载安装及环境变量配置教程 安装版本:node-v18.19.0-x64.msi 文章目录 Windows下Node.js下载安装及环境变量配置教程一、Node.js和NPM简介二、下载地址三、安装步骤四、环境配置五、安装淘宝镜像总结 一、Node.js和NPM简介 1、Node.js &#xf…

数据结构|对称矩阵压缩存储的下标公式推导|如何求对称矩阵压缩存储对应的一维数组下标

因为考试的时候可能会给很多情况的变式题,所以要会推导而不是背公式,情况变了,公式就不管用了。 行优先、只存储主对角线下三角区: 矩阵下标 ai,j(i>j)->一维数组下标 B[k] 按照行优先的原则,确定 ai,j 是一维数…

Unity3D实现项目限制功能(使用次数限制和时间限制)

系列文章目录 unity工具 文章目录 系列文章目录前言一、时间限制1-1、代码如下: 二、次数限制2-1、 在Unity项目中需要对注册表进行操作,还需要设置一下API兼容级别设置成 .NET Framework2-2、设置如下图 Player里面2-3、代码如下: 三、同时…

13. Threejs案例-绘制3D文字

13. Threejs案例-绘制3D文字 实现效果 知识点 FontLoader 一个用于加载 JSON 格式的字体的类。 返回 font,返回值是表示字体的 Shape 类型的数组。 其内部使用 FileLoader 来加载文件。 构造器 FontLoader( manager : LoadingManager ) 参数类型描述managerLo…

简单的TcpServer(英译中)

目录 一、TCP socket API 详解1.1 socket()1.2 bind()1.3 listen()1.4 accept()1.5 connect 二、TcpServer(英译中)2.1 TcpServer.hpp2.2 TcpClient.cc2.3 Task.hpp2.4 Thread.hpp2.5 ThreadPool.hpp2.6 makefile2.7 Main.cc2.8 log.hpp2.9 Init.hpp2.10…

瑞萨RA6M3开发实践指南-UART实践

1.背景说明 本文是参考瑞萨RA6M3开发实践指南文章教程,基于瑞萨HMI-Board BSP :1.1.1 版本 RT-Thread 5.0.1 版本操作步骤进行记录,整理成的文档。 1.1 本章内容 使用RT-Thread Studio创建开发板的程序,编写UART的程序,实现串口…

Springboot+vue的企业财务管理系统(有报告)。Javaee项目,springboot vue前后端分离项目

演示视频: Springbootvue的企业财务管理系统(有报告)。Javaee项目,springboot vue前后端分离项目 项目介绍: 本文设计了一个基于Springbootvue的前后端分离的企业财务管理系统,采用M(model&…

【Java安全】ysoserial-URLDNS链分析

前言 Java安全中经常会提到反序列化,一个将Java对象转换为字节序列传输(或保存)并在接收字节序列后反序列化为Java对象的机制,在传输(或保存)的过程中,恶意攻击者能够将传输的字节序列替换为恶…

第二篇:MySQL安装与配置(基于小皮面板(phpstudy))

在第一篇中介绍了数据库的相关概念,了解到SQL是用来操作数据库管理系统的语言,因此要学习数据库技术,数据库管理系统的配备是必不可少的! 并且出于流行性与实惠性的双考量而选择MySQL这款数据库管理系统软件 一,工具推…

JVM工作原理与实战(三十六):GraalVM虚拟机

专栏导航 JVM工作原理与实战 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、GraalVM介绍 二、GraalVM的两种运行模式 三、GraalVM应用场景 1.GraalVM存在的问题 2.GraalVM企业级应用-Serverless架构 3.Serverless架构-函数计算 4.Serverless架构-Serve…

zabbix配置自动发现

1.准备一台新的主机,安装相关软件包。 [rootsishi ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm [rootsishi ~]# yum -y install zabbix-agent2.修改zabbix-agent端的配置文件 [rootsishi ~]# vim /etc/z…

TS项目实战二:网页计算器

使用ts实现网页计算器工具,实现计算器相关功能,使用tsify进行项目编译,引入Browserify实现web界面中直接使用模块加载服务。   源码下载:点击下载 讲解视频 TS实战项目四:计算器项目创建 TS实战项目五:B…