2025年- H28-Lc136- 24.两两交换链表中的节点(链表)---java版
1.题目描述
2.思路
cur指针要先放在虚拟头节点,才能去操作第一个数和第二个数
先判断偶数个节点,再判断奇数个节点,否则会犯空指针异常。
(1)如果节点是偶数个节点,只要满足curr.nextnull,就说明遍历结束了
(2)如果节点是奇数个节点,只要满足curr.next.nextnull,说明遍历就结束了
(3)如果是0个节点。curr指向的是虚拟头节点,所以也满足curr.next=null
(4)在赋值操作之前,定义一个临时变量,保存节点1(curr.next)
(5)在赋值操作之前,也需要定义一个临时变量,保存节点3(curr.next.next.next)
(6)要交换节点3和节点4的时候,要把curr从节点1移动到节点3,所以就要执行curr=curr.next.next。
(7)最后返回链表的头节点
3.代码实现
class ListNode{int val;ListNode next;public ListNode() {}public ListNode(int val) {this.val = val;}public ListNode(int val,ListNode next) {this.val = val;this.next = next;}
}
public class H24 {public ListNode swapPairs(ListNode head) {//1.创建一个虚拟头节点ListNode dummyhead=new ListNode(0);dummyhead.next=head;//2.定义一个curr指针,curr==dummyhead,才能操作节点1和节点2ListNode curr=dummyhead;//3.while可以进行无限循环,终止条件就说偶数节点curr.next!=null才能交换,融合curr.next==null,说明已经到达最后一个节点//此处要&&,保证不会有空指针异常while(curr.next!=null&&curr.next.next!=null){//4.在第五步赋值之前,创建两个临时变量保留节点1和节点3ListNode temp1=curr.next;ListNode temp3=curr.next.next.next;//5.虚拟头节点指向节点2(现在==过去)curr.next=curr.next.next;//6.节点2的指针指向节点1curr.next.next=temp1;//7.节点1(此时节点1是temp1)的指针指向节点3temp1.next =temp3;//8.将cur指针移动到交换后1的位置,因为此时要交换3和和4了(2-》1-》3-》4)curr=curr.next.next;}return dummyhead.next;//返回头节点}public static void main(String[] args){H24 test=new H24();//创建1,2,3,4节点ListNode node4=new ListNode(4,null);ListNode node3=new ListNode(3,node4);ListNode node2=new ListNode(2,node3);ListNode head=new ListNode(1,node2);ListNode result = test.swapPairs(head);System.out.println("输出两两交换链表的结果:");while(result!=null){System.out.print(+result.val);if (result.next!=null){System.out.print("->");}result=result.next;}}
}
相关文章:
2025年- H28-Lc136- 24.两两交换链表中的节点(链表)---java版
1.题目描述 2.思路 cur指针要先放在虚拟头节点,才能去操作第一个数和第二个数 先判断偶数个节点,再判断奇数个节点,否则会犯空指针异常。 (1)如果节点是偶数个节点,只要满足curr.nextnull,就说…...
ubuntu18.04通过cuda_11.3_xxx.run安装失败,电脑黑屏解决办法
项目场景: ubuntu18.04跑DG-SLAM相关代码,安装lietorch包报错,需要用到GPU。 问题描述 跑代码需要cuda11.3,系统里面有另外一个版本,运行cuda_11.3_xxx.run,同时也选择了driver,安装成功后&am…...
Linux之基础IO
目录 一、理解 "文件" 1.1、狭义理解 1.2、广义理解 1.3、文件操作的归类认知 1.4、系统角度 二、回顾C语言接口 2.1、打开文件 2.2、写文件 2.3、读文件 2.4、stdin & stdout & stderr 2.6、打开文件的方式 三、系统文件I/O 3.1、一种传递标志…...
上位机知识篇---涂鸦智能云平台
文章目录 前言 前言 本文简单介绍了涂鸦智能云平台。...
InfluxDB 3 Core + Java 11 + Spring Boot:打造高效物联网数据平台
一、 引言:为什么选择InfluxDB 3? 项目背景: 在我们的隧道风机监控系统中,实时数据的采集、存储和高效查询是至关重要的核心需求。风机运行产生的振动、倾角、电流、温度等参数是典型的时序数据,具有高并发写入、数据…...
Kubernetes控制平面组件:Kubelet详解(七):容器网络接口 CNI
云原生学习路线导航页(持续更新中) kubernetes学习系列快捷链接 Kubernetes架构原则和对象设计(一)Kubernetes架构原则和对象设计(二)Kubernetes架构原则和对象设计(三)Kubernetes控…...
Pandas 构建并评价聚类模型② 第六章
构建并评价聚类模型 构建并评价聚类模型一、数据读取与准备(代码6 - 6部分)结果代码解析 二、Kmeans聚类(代码6 - 6部分)结果代码解析 三、数据降维可视化(代码6 - 6部分)结果代码解析 四、FMI评价…...
【simulink】IEEE33节点系统潮流分析模型
目录 主要内容 程序内容 2.1 33节点simulink模型一览 2.2 节点模型图 下载链接 主要内容 该仿真采用simulink模型对33节点网络进行模拟仿真,在simulink模型中定义了33节点系统的电阻、电抗、节点连接关系等参数,通过控制块来实现信号连接关系&…...
彻底解决docker代理配置与无法拉取镜像问题
为什么会有这篇文章? 博主在去年为部署dify研究了docker,最后也是成功部署,但是因为众所周知的原因,卡ziji脖子 ,所以期间遇到各种网络问题的报错,好在最后解决了. 但时隔一年,博主最近因为学习原因又一次使用docker,原本解决的问题却又没来由的出现,且和之前有很多不同(有时…...
Linux 安装 Unreal Engine
需要对在unreal engine官网进行绑定github账号,然后到unreal engine github仓库中进行下载对应的版本,并进行安装unreal engine官网 github地址...
tensorflow图像分类预测
tensorflow图像分类预测 CPU版本和GPU版本二选一 CPU版本 pip -m install --upgrade pippip install matplotlib pillow scikit-learnpip install tensorflow-intel2.18.0GPU版本 工具 miniconda 升级依赖库 conda update --all创建目录 mkdir gpu-tf进入目录 cd gpu-tf创建虚…...
C++数组详解:一维和多维数组的定义、初始化、访问与遍历
1. 引言 数组是C中最基础的数据结构之一,用于存储相同类型的元素的集合。它提供了高效的内存访问方式,适用于需要快速查找和遍历数据的场景。本文将全面介绍: 一维数组的定义、初始化与遍历多维数组(如二维数组)的定…...
linux下编写shell脚本一键编译源码
0 前言 进行linux应用层编程时,经常会使用重复的命令对源码进行编译,然后把编译生成的可执行文件拷贝到工作目录,操作非常繁琐且容易出错。本文编写一个简单的shell脚本一键编译源码。 1 linux下编写shell脚本一键编译源码 shell脚本如下&…...
安卓端互动娱乐房卡系统调试实录:从UI到协议的万字深拆(第一章)
前言:调房卡,不如修空调(但更费脑) 老实说,拿到这套安卓端互动组件源码的时候,我内心是拒绝的。不是因为它不好,而是太好了,目录规整、界面精美、逻辑还算清晰,唯一的问…...
【通用大模型】Serper API 详解:搜索引擎数据获取的核心工具
Serper API 详解:搜索引擎数据获取的核心工具 一、Serper API 的定义与核心功能二、技术架构与核心优势2.1 技术实现原理2.2 对比传统方案的突破性优势 三、典型应用场景与代码示例3.1 SEO 监控系统3.2 竞品广告分析 四、使用成本与配额策略五、开发者注意事项六、替…...
宝塔面板屏蔽垃圾搜索引擎蜘蛛和扫描工具的办法
首先进入宝塔面板,文件管理进入/www/server/nginx/conf目录,新建空白文件kill_bot.conf。然后将以下代码保存到当前文件中。 #禁止垃圾搜索引擎蜘蛛抓取if ($http_user_agent ~* "CheckMarkNetwork|Synapse|Nimbostratus-Bot|Dark|scraper|LMAO|Ha…...
【低成本STM32的T-BOX开发实战:高可靠的车联网解决方案】
基于STM32的车辆远程通信终端(T-BOX)开发实战:低成本高可靠的车联网解决方案 目录 引言:为什么需要T-BOX?系统总体设计:T-BOX的架构与核心功能硬件设计:STM32主控与关键模块解析 STM32F105VCT6…...
聚类算法K-means和Dbscan的对比
K-means和DBSCAN_dbscan和kmeans的区别-CSDN博客...
mysql的高可用
1. 环境准备 2台MySQL服务器(node1: 192.168.1.101,node2: 192.168.1.102)2台HAProxy Keepalived服务器(haproxy1: 192.168.1.103,haproxy2: 192.168.1.104)虚拟IP(VIP: 192.168.1.100&#x…...
vue3 elementplus tabs切换实现
Tabs 标签页 | Element Plus <template><!-- editableTabsValue 是当前tab 的 name --><el-tabsv-model"editableTabsValue"type"border-card"editableedit"handleTabsEdit"><!-- 这个是标签面板 面板数据 遍历 editableT…...
printf在c语言中代表什么(非常详细)
在C语言中,有三个函数可以用来向控制台(可以理解为显示器或者屏幕)输出数据,它们分别是: 输出函数说明用法演示puts()只能输出字符串,并且输出结束后会自动换行puts("C language is great");put…...
Linux梦开始的地方
1.概率 经过C语言,数据结构,C的学习我们现在要开始学习Linux的学习了。我们学习Linux是从四部分来进行的: 1.Linux初识,Linux环境,Linux指令,Linux开发环境。 2.Linux系统。 3.Linux网络 4.MySQL Lin…...
关于机器学习的实际案例
以下是一些机器学习的实际案例: 营销与销售领域 - 推荐引擎:亚马逊、网飞等网站根据用户的品味、浏览历史和购物车历史进行推荐。 - 个性化营销:营销人员使用机器学习联系将产品留在购物车或退出网站的用户,根据客户兴趣定制营销…...
Kubernetes控制平面组件:Kubelet详解(五):切换docker运行时为containerd
云原生学习路线导航页(持续更新中) kubernetes学习系列快捷链接 Kubernetes架构原则和对象设计(一)Kubernetes架构原则和对象设计(二)Kubernetes架构原则和对象设计(三)Kubernetes控…...
<前端小白> 前端网页知识点总结
HTML 标签 1. 标题标签 h1到h6 2. 段落标签 p 3. 换行 br 水平线 hr 4. 加粗 strong 倾斜 em 下划线 ins 删除 del 5. 图像标签 img src-图像的位置 alt- 图片加载失败显示的文字 替换文本 title--- 鼠标放到图片上显示的文字 提示…...
【Linux驱动】Linux 按键驱动开发指南
Linux 按键驱动开发指南 1、按键驱动开发基础 1.1. 按键驱动类型 Linux下的按键驱动主要有两种实现方式: 输入子系统驱动:最常用,通过input子系统上报按键事件 字符设备驱动:较少用,需要自己实现文件操作接口 1.…...
AI日报 - 2025年05月19日
🌟 今日概览 (60秒速览) ▎🤖 大模型前沿 | GPT-5传闻再起,将基于全新模型构建,与GPT-4彻底分离;Claude 3.7 Sonnet系统提示泄露,揭示其主动引导对话、多语言支持及安全新特性;研究指出直接复用…...
BUUCTF——ReadlezPHP
BUUCTF——ReadlezPHP 进入靶场 看了看框架和源码信息 没有什么可以利用的地方 爆破一下目录看看 结果只出来个index.php 看了一下Findsomthing 报了个路径 /time.php?source拼接访问一下 出了个php代码 <?php #error_reporting(0); class HelloPhp {public $a;pub…...
java集合相关的api-总结
简介 集合是存储数据的容器,集合相关的API提供了不同的数据结构,来满足不同的需求。这里是对常见集合API的使用场景和相关源码的一个总结,在实际开发中,如果不知道该选择什么集合,这篇文章也许可以参考一下。 集合相…...
FloodFill算法:洪水般的图像处理艺术
简单来说就是一场洪水(雨水)会把低洼的地方淹没 也就是一道题,你要找出所有为负数的连通块,对角线不能连通,所以上述图有两个 其实也很简单,就是你扫描的过程,发现一个负数,就以这…...
【开源分享】健康饮食管理系统(双端+论文)
💻技术栈 前后端分离项目,PC双端(管理端用户端) 后端:Javaspringboot 前端:vue 数据库:mysql 💡运行效果图 1. 管理端: 2. 用户端: 📕源码获…...
【图像生成大模型】CogVideoX-5b:开启文本到视频生成的新纪元
CogVideoX-5b:开启文本到视频生成的新纪元 项目背景与目标模型架构与技术亮点项目运行方式与执行步骤环境准备模型加载与推理量化推理 执行报错与问题解决内存不足模型加载失败生成质量不佳 相关论文信息总结 在人工智能领域,文本到视频生成技术一直是研…...
C++学习:六个月从基础到就业——C++20:协程(Coroutines)
C学习:六个月从基础到就业——C20:协程(Coroutines) 本文是我C学习之旅系列的第五十篇技术文章,也是第三阶段"现代C特性"的第十二篇,继续介绍C20引入的新特性,本篇重点是协程(Coroutines)。查看完整系列目录…...
【DAY22】 复习日
内容来自浙大疏锦行python打卡训练营 浙大疏锦行 仔细回顾一下之前21天的内容 作业: 自行学习参考如何使用kaggle平台,写下使用注意点,并对下述比赛提交代码 kaggle泰坦里克号人员生还预测...
tauri2项目使用sidcar嵌入可执行文件并使用命令行调用
Sidecar 是 Tauri 框架中的一个功能,允许你将现有的命令行程序(CLI)打包并分发到你的 Tauri 应用程序中。以下是它的主要作用和用法。集成命令行工具:将现有的 CLI 程序无缝集成到你的 Tauri 应用中。跨平台分发:确保你…...
选择合适的AI模型:解析Trae编辑器中的多款模型及其应用场景
在当今数字化时代,人工智能技术飞速发展,各种AI模型层出不穷,为人们的工作和生活带来了极大的便利。Trae编辑器作为一款集成了多种先进AI模型的工具,为用户提供了丰富的选择,以满足不同场景下的多样化需求。本文将深入…...
超越想象:利用MetaGPT打造高效的AI协作环境
前言 在人工智能迅速发展的今天,如何让多个大语言模型(LLM)高效协同工作成为关键挑战。MetaGPT 作为一种创新的多智能体框架,成功模拟了一个真实软件公司的运作流程,实现了从需求分析到代码实现的全流程自动化&#x…...
BOM知识点
BOM(Browser Object Model)即浏览器对象模型,是用于访问和操作浏览器窗口的编程接口。以下是一些BOM的知识点总结: 核心对象 • window:BOM的核心对象,代表浏览器窗口。它也是全局对象,所有全…...
IDE/IoT/搭建物联网(LiteOS)集成开发环境,基于 LiteOS Studio + GCC + JLink
文章目录 概述LiteOS Studio不推荐?安装和使用手册呢?HCIP实验的源码呢? 软件和依赖安装软件下载软件安装插件安装依赖工具-方案2依赖工具-方案1 工程配置打开或新建工程板卡配置组件配置编译器配置-gcc工具链编译器配置-Makefile脚本其他配置编译完成 …...
常见的 HTTP 接口(请求方法)
一:GET 作用:从服务器获取资源(查询数据)。特点: 请求参数通过 URL 传递(如https://api.example.com/users?id123),参数会显示在地址栏中。不修改服务器数据,属于幂等操…...
墨水屏显示模拟器程序解读
程序如下:出处https://github.com/tsl0922/EPD-nRF5?tabreadme-ov-file // GUI emulator for Windows // This code is a simple Windows GUI application that emulates the display of an e-paper device. #include <windows.h> #include <stdint.h>…...
【图像生成大模型】Step-Video-T2V:下一代文本到视频生成技术
Step-Video-T2V:下一代文本到视频生成技术 引言Step-Video-T2V 项目概述核心技术1. 视频变分自编码器(Video-VAE)2. 3D 全注意力扩散 Transformer(DiT w/ 3D Full Attention)3. 视频直接偏好优化(Video-DPO…...
【Java学习笔记】【第一阶段项目实践】房屋出租系统(面向对象版本)
房屋出租系统(面向对象版本) 整体思想:采用数组存储房屋信息,深刻体会面向对象的好处和过程 一、实现需求 (1)用户层 系统菜单显示 提示用户输入对应的数字选择功能 各个功能界面操作提示(底…...
18. 结合Selenium和YAML对页面继承对象PO的改造
18. 结合Selenium和YAML对页面继承对象PO的改造 一、架构改造核心思路 1.1 改造前后对比 #mermaid-svg-ziagMhNLS5fIFWrx {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-ziagMhNLS5fIFWrx .error-icon{fill:#5522…...
Vue-监听属性
监听属性 简单监听 点击切换名字,来回变更Tom/Jerry,输出 你好,Tom/Jerry 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><title>监听属性</title><!-- …...
AI写PPT可以用吗?我测试了3款AI写PPT工具,分享感受
上周五临下班,领导突然让我周末赶出一份季度营销报告 PPT,还要求周一晨会展示。看着空荡荡的 PPT 页面,我满心都是绝望 —— 周末不仅泡汤,搞不好还得熬夜到凌晨。好在同部门的前辈给我推荐了几款 AI 写 PPT 工具,没想…...
FreeSWITCH 简单图形化界面43 - 使用百度的unimrcp搞个智能话务台,用的在线的ASR和TTS
FreeSWITCH 简单图形化界面43 - 使用百度的unimrcp搞个智能话务台 0、一个fs的web配置界面预览1、安装unimrcp模块2、安装完成后,配置FreeSWITCH。2.1 有界面的配置2.1.1 mod_unimrcp模块配置2.1.2 mod_unimrcp客户端配置 2.2 无界面的配置 3、呼叫规则4、编写流程4…...
C 语言学习笔记(函数)
内容提要 函数 函数的概述函数的分类函数的定义形参和实参函数的返回值 函数 函数的概述 **函数:**实现一定功能的,独立的代码模块,对于函数的使用,一定是先定义,后使用。 使用函数的优势: ①我们可以…...
数据结构 -- 树形查找(二)平衡二叉树
平衡二叉树 定义 平衡二叉树(AVL树) – 树上的任意一点的左子树和右子树的高度之差不超过1 节点的平衡因子 左子树高-右子树高 平衡二叉树的结点的平衡因子的值只可能是-1、0、1 //平衡二叉树结点 typedef struct AVLNode{int key; //数据域int bal…...
day 29
类装饰器 类有修饰器,他的逻辑:接收一个类,返回一个修改后的类。例如 1. 添加新的方法或属性(如示例中的 log 方法)。 2. 修改原有方法(如替换 __init__ 方法,添加日志)。 3. 甚…...