LeetCode——24(两两交换链表中的节点)
题目链接https://leetcode.cn/problems/swap-nodes-in-pairs/题目描述给你一个链表两两交换其中相邻的节点并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题即只能进行节点交换。示例 1输入head [1,2,3,4] 输出[2,1,4,3]示例 2输入head [] 输出[]示例 3输入head [1] 输出[1]提示链表中节点的数目在范围[0, 100]内0 Node.val 100题解思路思路虚拟头节点 为了简化边界条件如链表为空或只有一个节点创建一个虚拟头节点virtualHead其next指向原链表头head。这样处理后链表操作无需单独判断头节点。双指针遍历 使用指针cur从virtualHead开始遍历链表。每次处理两个相邻节点cur-next和cur-next-next保存关键节点temp保存当前节点cur-next第一个节点。temp1保存cur-next-next-next交换后第一个节点的后续链表。交换节点将cur-next指向cur-next-next即第二个节点。将cur-next-next指向temp即第一个节点。将temp-next指向temp1连接后续链表。移动指针cur移动到交换后的第二个节点即cur-next-next为下一次交换做准备。边界处理循环条件cur-next ! nullptr cur-next-next ! nullptr确保每次至少有两个节点可交换。链表长度为 0 或 1 时直接返回原链表。释放内存 交换完成后删除虚拟头节点virtualHead避免内存泄漏。/** * 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* virtualHead new ListNode(0); virtualHead - next head; ListNode* cur virtualHead; while(cur - next ! nullptr cur - next - next ! nullptr){ ListNode* temp cur - next; ListNode* temp1 cur - next - next - next; ​ cur - next cur - next - next; cur - next - next temp; temp - next temp1; ​ cur cur - next - next; } ListNode* result virtualHead - next; delete virtualHead; return result; } };时间复杂度: O(n)空间复杂度: O(1)注此类题目建议画图模拟

相关新闻

用LLM分析AI机器人流量

用LLM分析AI机器人流量

网站分析中正出现一个日益严重的盲点:AI助手流量背后的用户意图。 每一天,ChatGPT、Claude、Perplexity和其他AI工具都会访问文档、浏览产品页面,并代表真实用户搜索答案来访问内容。虽然现代分析平台拥有复杂的机器人过滤机制,可…

2026/5/17 10:22:12 阅读更多 →
H桥驱动电路

H桥驱动电路

2026/7/3 11:14:11 阅读更多 →
用Agent Lightning训练Agent

用Agent Lightning训练Agent

Agent Lightning通过VERL为Agent启用GRPO微调。它从执行多步推理和工具调用的Agent中收集轨迹,允许模型学习诸如SQL ReAct agent的工作流,这些agent使用工具进行模式搜索、列检查、SQL生成和查询执行。 然而,官方的Agent Lightning文本到SQL…

2026/5/17 10:22:08 阅读更多 →

最新新闻

亦唐科技在智慧医疗领域的应用:健康管理的数字化转型

亦唐科技在智慧医疗领域的应用:健康管理的数字化转型

随着科技的迅猛发展,信息技术与医疗行业的深度融合成为推动健康管理和医疗服务改革的重要力量。智慧医疗不仅仅是对医疗资源的智能化管理,更是通过信息技术手段提升医疗服务质量、优化就医体验,降低诊疗成本,实现个性化、精准化的…

2026/7/3 11:13:36 阅读更多 →
百考通AI开题报告用智能技术帮你把构想转化为研究方案

百考通AI开题报告用智能技术帮你把构想转化为研究方案

开题报告是毕业论文或学位研究的“第一张施工图”,它不仅要阐明研究价值,更要清晰界定问题、设计方法、规划路径。然而,许多学生在撰写时常常陷入“有想法却写不出”“懂方向但不会表达”的困境:选题宽泛、文献堆砌、方法模糊、结…

2026/7/3 11:11:35 阅读更多 →
JWT安全漏洞实战:从算法混淆到密钥爆破的靶场通关指南

JWT安全漏洞实战:从算法混淆到密钥爆破的靶场通关指南

1. 项目概述:从JWT到靶场实战如果你正在学习Web安全,尤其是认证与授权相关的漏洞,那么JWT(JSON Web Token)绝对是一个绕不开的核心知识点。它广泛应用于现代Web应用和API的认证流程,从单点登录到微服务间的…

2026/7/3 11:09:34 阅读更多 →
大模型是重型工业品:算力、能源、数据、人才、产业链与政策六要素解析

大模型是重型工业品:算力、能源、数据、人才、产业链与政策六要素解析

1. 项目概述:这不是一场技术竞赛,而是一场“全要素战争”“康波之眼|AI大模型竞争系列专题深度解读”这个标题里,“康波”二字不是随便起的——它直指康德拉季耶夫长周期理论,一个用来解释资本主义经济中约50–60年一轮…

2026/7/3 11:07:33 阅读更多 →
13DOF传感器与PIC18F2682的嵌入式定位导航方案

13DOF传感器与PIC18F2682的嵌入式定位导航方案

1. 项目背景与核心需求 在嵌入式系统开发领域,精确的定位与导航能力一直是技术难点。传统方案往往采用独立的GPS模块和惯性测量单元(IMU),但存在成本高、集成度低的问题。这个项目通过13DOF传感器与PIC18F2682微控制器的创新组合,实现了高性价…

2026/7/3 11:05:33 阅读更多 →
5大技术突破:OpenCore Legacy Patcher如何让旧Mac重获新生

5大技术突破:OpenCore Legacy Patcher如何让旧Mac重获新生

5大技术突破:OpenCore Legacy Patcher如何让旧Mac重获新生 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你是否曾经看着那台陪伴多年的MacBook&…

2026/7/3 11:05:32 阅读更多 →

日新闻

Nginx防御TLS重协商攻击实战:从原理到配置与监控

Nginx防御TLS重协商攻击实战:从原理到配置与监控

1. 项目概述:为什么TLS重协商攻击至今仍需警惕十多年前的CVE-2011-1473,一个关于TLS/SSL协议重协商机制的漏洞,现在提起来还有必要吗?很多运维和开发朋友可能会觉得,这都老掉牙了,现代服务器和客户端不都默…

2026/7/3 0:03:59 阅读更多 →
华为防火墙双通道远程管理实战:Web与SSH配置详解

华为防火墙双通道远程管理实战:Web与SSH配置详解

1. 项目概述:为什么需要双通道远程管理防火墙?在任何一个稍具规模的企业网络里,防火墙都是那个默默守护在边界的关键角色。作为网络工程师,我们不可能每次都跑到机房,插上console线去配置它。远程管理能力,…

2026/7/3 0:03:59 阅读更多 →
AD74413R与PIC18F65K40的高精度工业数据采集方案

AD74413R与PIC18F65K40的高精度工业数据采集方案

1. 项目概述:AD74413R与PIC18F65K40的协同工作在工业自动化和精密测量领域,同时实现高精度模数转换(ADC)和数模转换(DAC)功能是许多复杂系统的核心需求。AD74413R作为一款四通道可配置模拟输入/输出器件,与PIC18F65K40微控制器的组合&#xf…

2026/7/3 0:05:59 阅读更多 →

周新闻

月新闻