125.两两交换链表中的节点(力扣)
题目描述

代码解决及思路
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/ class Solution { public:ListNode* swapPairs(ListNode* head) {ListNode*dummyHead=new ListNode(0); //设置一个虚拟头节点dummyHead->next=head; //让虚拟头节点指向真正的头节点ListNode*cur=dummyHead; ListNode*temp;//临时节点ListNode*temp1;//临时节点1while(cur->next!=nullptr&&cur->next->next!=nullptr){temp=cur->next;//记录临时节点temp1=cur->next->next->next;cur->next=cur->next->next;cur->next->next=temp;cur->next->next->next=temp1;cur=cur->next->next;//移动头节点 进行下一次操作}ListNode*result=dummyHead->next;delete dummyHead;return result;} };这段代码实现了链表中的两两交换节点功能。具体来说,它将链表中相邻的两个节点进行交换,如果链表中的节点数为奇数,那么最后一个节点保持不变。
下面是代码的详细解释:
首先,定义了一个
ListNode结构体,它包含一个整型值val和一个指向下一个节点的指针next。在
Solution类中,定义了一个swapPairs函数,它接受链表的头节点head作为参数,并返回交换后的链表的头节点。在
swapPairs函数中,首先创建了一个虚拟头节点dummyHead,它的val设置为0,next指向head。这个虚拟头节点的目的是为了方便操作,避免处理头节点交换的特殊情况。然后,初始化了三个指针
cur、temp和temp1。cur指向虚拟头节点dummyHead,temp和temp1用于在交换过程中临时保存节点。使用一个
while循环来遍历链表,循环的条件是cur的下一个节点和下下个节点都不为空,即至少还有两个节点可以交换。在循环内部,首先使用
temp保存cur的下一个节点,即第一个要交换的节点。然后,使用
temp1保存cur的下一个节点的下一个节点的下一个节点,即第三个节点。接下来,进行节点交换:
- 将
cur的next指向cur的下一个节点的下一个节点,即第二个节点。- 将
cur的下一个节点的next指向temp,即第一个节点。- 将
temp的next指向temp1,即第三个节点。最后,将
cur移动到cur的下一个节点的下一个节点,即移动到交换后的第二个节点,为下一次交换做准备。当循环结束后,
dummyHead的下一个节点就是交换后的链表的头节点。将这个节点赋值给result,并删除虚拟头节点dummyHead。函数返回交换后的链表的头节点
result。
相关文章:
125.两两交换链表中的节点(力扣)
题目描述 代码解决及思路 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), …...
APP精准推送广告是怎么做到的?
你有没有遇到这种情况,刚和家人聊起五一去哪玩,各种软件就刷到各地旅游景点。刚和朋友说到健身计划,转眼间网购平台就给你推荐各种健身用品,这些软件是如何知道我们的需求,难道我们的手机被监听了?从技术上…...
RapidJSON介绍
1.简介 RapidJSON 是一个 C 的 JSON 解析库,由腾讯开源。 支持 SAX 和 DOM 风格的 API,并且可以解析、生成和查询 JSON 数据。RapidJSON 快。它的性能可与strlen() 相比。可支持 SSE2/SSE4.2 加速。RapidJSON 独立。它不依赖于 BOOST 等外部库。它甚至…...
大型企业总分支多区域数据传输,效率为先还是安全为先?
大型企业为了业务拓展需要,会在全国乃至全球各地设立分公司和办事机构,以便更好地处理当地事务,并进行市场的开拓和客户维护,此时,企业内部就衍生出了新的业务需求,即多区域数据传输。 多区域很难准确定义&…...
C语言例题35、反向输出字符串(指针方式),例如:输入abcde,输出edcba
#include <stdio.h>void reverse(char *p) {int len 0;while (*p ! \0) { //取得字符串长度p;len;}while (len > 0) { //反向打印到终端printf("%c", *--p);len--;} }int main() {char s[255];printf("请输入一个字符串:");gets(s)…...
场景文本检测识别学习 day09(Swin Transformer论文精读)
Patch & Window 在Swin Transformer中,不同层级的窗口内部的补丁数量是固定的,补丁内部的像素数量也是固定的,如上图的红色框就是不同的窗口(Window),窗口内部的灰色框就是补丁(Patch&#…...
抖音小店个人店和个体店有什么不同?区别问题,新手必须了解!
哈喽~我是电商月月 新手开抖音小店入驻时会发现,选择入驻形式时有三个选择,个人店,个体店和企业店 其中,个人店和个体店只差了一个字,但个人店不需要营业执照,是不是入驻时选择个人店会更好一点呢&#x…...
动态规划入门和应用示例
文章目录 前言斐波那契数列爬楼梯总结优点:缺点: 前言 动态规划(Dynamic Programming,DP)是运筹学的一个分支,是求解决策过程最优化的数学方法。它主要用于解决一类具有重叠子问题和最优子结构性质的问题。…...
【C语言】精品练习题
目录 题目一: 题目二: 题目三: 题目四: 题目五: 题目六: 题目七: 题目八: 题目九: 题目十: 题目十一: 题目十二: 题目十…...
数据库(MySQL)—— DML语句
数据库(MySQL)—— DML语句 什么是DML语句添加数据给全部字段添加数据批量添加数据 修改数据删除数据 什么是DML语句 在MySQL中,DML(Data Manipulation Language,数据操纵语言)语句主要用于对数据库中的数…...
【最大公约数 并集查找 调和级数】1998. 数组的最大公因数排序
本文涉及知识点 最大公约数 并集查找 调和级数 LeetCode1998. 数组的最大公因数排序 给你一个整数数组 nums ,你可以在 nums 上执行下述操作 任意次 : 如果 gcd(nums[i], nums[j]) > 1 ,交换 nums[i] 和 nums[j] 的位置。其中 gcd(nums…...
iOS实现一个高性能的跑马灯
效果图 该跑马灯完全通过CATextLayer 实现,轻量级,并且通过 系统的位移动画实现滚动效果,避免了使用displaylink造成的性能瓶颈,使用系统动画,系统自动做了很多性能优化,实现更好的性能,并使用…...
MySQL的视图、存储过程、触发器
视图 介绍 视图是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。通俗的讲,视图只保存了查询的SQL逻辑,不保存查询结果。所以我们在创建视图的时…...
【图像特征点匹配】
图像特征点匹配 图像特征点匹配是计算机视觉中的一项关键技术,它涉及在两个或多个图像之间寻找并匹配具有独特属性的点,这些点被称为特征点。 立体视觉:通过匹配同一场景的不同视角图像中的特征点,可以重建场景的三维结构。物体识别:通过匹配物体表面的特征点,可以识别和…...
GZIPOutputStream JSON压缩
一、背景 小王瞥了一眼历史记录表,不禁惊呼:“这表怎么这么大?”同事们闻声纷纷围拢过来查看。仔细一瞧,发现这个表的大小竟然超过了3G。主管随即指示小王打开相应的表数据检查,发现其中存储了用户的权限信息…...
毫米波雷达原理(含代码)(含ARS548 4D毫米波雷达数据demo和可视化视频)
毫米波雷达原理 1. 传统毫米波雷达1.1 雷达工作原理1.2 单目标距离估计1.3 单目标速度估计1.4 单目标角度估计1.5 多目标距离估计1.6 多目标速度估计1.7多目标角度估计1.7 总结 3. FMCW雷达数据处理算法4. 毫米波雷达的目标解析(含python代码)5. ARS548 4D毫米波雷达数据demo(含…...
3.1 Gateway之路由请求和转发
1.依赖坐标 <!--网关--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><!--服务注册和发现--><dependency><groupId>com.alibab…...
人脸识别开源算法库和开源数据库
目录 1. 人脸识别开源算法库 1.1 OpenCV人脸识别模块 1.2 Dlib人脸识别模块 1.3 SeetaFace6 1.4 DeepFace 1.5 InsightFace 2. 人脸识别开源数据库 2.1 CelebA 2.2 LFW 2.3 MegaFace 2.4 Glint360K 2.5 WebFace260M 人脸识别 (Face Recognition) 是一种基于人的面部…...
Excel 中用于在一个范围中查找特定的值,并返回同一行中指定列的值 顺序不一样 可以处理吗
一、需求 Excel 中,在一列(某范围内)查找另一列特定的值,并返回同一行中另一指定列的值, 查找列和返回列的顺序不一样 二、 实现 1、下面是一个使用 INDEX 和 MATCH 函数的例子: 假设你有以下数据&…...
MySql-日期分组
一、分别统计各时间各类型数据条数 数据库的 request_time字段 数据类型:timestamp 默认值:CURRENT_TIMESTAMP 例子: 2024-01-26 08:25:48 原数据: 1、将数据按照日期(年月日)形式输出 按照request_…...
两端间隔数总个数
两端间隔数总个数 结尾序号 - 开头序号 1需要将索引还原成长度,索引1就好了...
从BiomixQA到黄帝内经:聊聊2024年那些‘小而美’的垂直医学问答数据集
2024医学垂直问答数据集全景:从BiomixQA到黄帝内经的实战选型指南 当ChatGPT在通用领域大放异彩时,医学AI的战场正悄然转向那些"小而美"的垂直数据集。不同于通用语料的粗放式训练,专业医学问答需要精确到细胞级的语义理解——一个…...
Audacity终极指南:5步掌握免费专业音频编辑全流程
Audacity终极指南:5步掌握免费专业音频编辑全流程 【免费下载链接】audacity Audio Editor 项目地址: https://gitcode.com/GitHub_Trending/au/audacity 还在为音频编辑软件的高昂费用而犹豫?想要一款功能全面、完全免费的专业级音频处理工具&a…...
保姆级教程:用BERT微调一个智能家居语音助手的意图识别模型(含完整代码)
智能家居场景下的BERT意图识别实战:从数据标注到模型部署 想象一下,当你对家里的智能音箱说"把客厅灯调暗一点"时,设备能准确理解你的意图并执行操作。这种自然交互的背后,是意图识别技术在发挥作用。不同于通用对话系…...
Claude Tool Use 怎么用?从零到生产的完整教程(2026)
上周接了个需求,做一个能查天气、查数据库、还能发邮件的 AI 助手。一开始想着用 LangChain 套一层,后来发现 Claude 原生的 Tool Use(也叫 Function Calling)已经很成熟了,根本不需要额外框架。但官方文档写得有点绕&…...
你还在用StreamingResponse硬扛LLM流式?FastAPI 2.0全新AsyncIteratorResponse实践已落地金融级AI客服(限前500名获取迁移checklist)
第一章:FastAPI 2.0异步流式响应的核心演进与金融级落地价值FastAPI 2.0 将 StreamingResponse 的底层调度机制从 ASGI 的同步迭代器封装,全面升级为原生协程驱动的异步生成器(async def ... yield),彻底消除事件循环阻…...
ModelNet数据集高效下载与预处理实战指南
1. ModelNet数据集简介与下载技巧 ModelNet数据集是三维计算机视觉领域的经典基准数据集,由麻省理工学院CSAIL实验室于2015年发布。这个数据集最初是为了解决三维形状分类和检索问题而创建的,如今已成为点云处理、三维重建等研究的标配测试平台。 数据…...
Qwen1.5镜像部署推荐:一键启动WebUI,告别手动配置烦恼
Qwen1.5镜像部署推荐:一键启动WebUI,告别手动配置烦恼 还在为手动配置AI模型环境而头疼吗?今天介绍的Qwen1.5-0.5B-Chat镜像部署方案,让你真正实现一键启动,无需任何复杂操作就能拥有智能对话服务。 1. 项目概述&#…...
通义千问1.5-1.8B-Chat-GPTQ-Int4 卷积神经网络(CNN)原理入门:模型辅助理解AI视觉基础
通义千问1.5-1.8B-Chat-GPTQ-Int4 卷积神经网络(CNN)原理入门:模型辅助理解AI视觉基础 你是不是经常看到“AI识别图片”、“自动驾驶看路”、“手机相册自动分类”这些功能,然后好奇它们是怎么做到的?其实,…...
Qwen3-TTS声音克隆入门指南:上传音频→选择语种→生成自然语音三步走
Qwen3-TTS声音克隆入门指南:上传音频→选择语种→生成自然语音三步走 想不想让AI用你自己的声音说话?或者,想不想用一段短短的录音,就克隆出能说十几种语言的“数字分身”?今天,我们就来手把手教你&#x…...
