当前位置: 首页 > news >正文

数据结构与算法(两两交换链表中的结点)

原题

24. 两两交换链表中的节点 - 力扣(LeetCode)

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

示例 1:

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

示例 2:

输入:head = []
输出:[]

示例 3:

输入:head = [1]
输出:[1]

解答

建立一个虚拟结点virtual指向head,cur=virtual(让cur始终位于要交换的两个结点的前一个结点),while循环的终止条件:以cur的视角向后看,若链表的大小为偶数,那么要交换的两个结点不能为空,如果链表的大小为奇数,则要交换的两个结点将会有一个为空,此时不需要交换结点,因为cur在最开始就等于vitual,一定不为空,所以无需判断cur是否为空。

以1-2-3-4为例,因为1,2交换后下两个要交换的结点是3,4,所以cur需要在2的位置(在两个要交换的结点前一个位置),当cur到2的位置的时候,cur指向1的链接断开,此时无法获取到结点1,同理,当2要指向1的时候(交换),2指向3的链接也会断开,所以需要用temp1和temp2把这两个结点(1,3)存储起来,交换位置完成后的链表为virtual-2-1-3-4,此时移动cur的位置就是cur=cur.next.next

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode swapPairs(ListNode head) {ListNode temp1;ListNode temp2;ListNode virtual=new ListNode();virtual.next=head;ListNode cur=virtual;while(cur.next!=null && cur.next.next!=null){temp1=cur.next;temp2=cur.next.next.next;cur.next=cur.next.next;cur.next.next=temp1;temp1.next=temp2;cur=cur.next.next;}return virtual.next;}
}

相关文章:

数据结构与算法(两两交换链表中的结点)

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

语言模型作为零样本规划者:提取可执行知识以供具身代理使用

【摘要】 本文研究了预训练的语言模型(LLMs)能否被用来执行在交互式环境中的任务。作者发现,尽管LLMs在生成高阶任务的行动计划时可能无法做到完全精确定义,但通过适当提示,大型预训练语言模型可以分解高阶任务到中阶…...

Baklib智能推荐引擎驱动内容中台升级

智能推荐引擎技术架构 现代智能推荐系统的技术架构以语义分析算法为核心,通过自然语言处理技术解构内容特征,结合动态知识图谱实现信息实体关系的智能映射。该系统采用分层设计架构,基础层依托深度学习模型处理海量非结构化数据,…...

显示器长时间黑屏

现象 电脑启动后,进入登录界面前会随机黑屏,有时候十几秒,有时候几分钟 进入桌面后,长时间不操作电脑黑屏,移动鼠标,点击键盘后尝试点亮屏幕,也会消耗较长时间 尝试 重装系统,或者重新安装显卡,都能够恢复,但过段时间以后又出现黑屏情况 集成显卡,独立显卡都出现过 操作系统…...

顺序表与链表·续

引言 本文承接上文(顺序表与链表-CSDN博客),开始对链表的要点提炼。前文提到顺序表适合需要频繁随机访问且数据量固定的场景,而链表适合需要频繁插入和删除且数据量动态变化的场景。链表的引入弥补了顺序表在动态性和操作效率上的…...

nvidia驱动升级-ubuntu 1804

升级 1.从官网下载*.run驱动文件 2.卸载原始驱动 sudo /usr/bin/nvidia-uninstall sudo apt-get --purge remove nvidia-\* # 可能不需要加-\ sudo apt-get purge nvidia-\* # 可能不需要加-\ sudo apt-get purge libnvidia-\* # 可能不需要…...

【Linux】——初识操作系统

文章目录 冯-诺依曼体系结构操作系统shell 冯-诺依曼体系结构 我们现在所使用的计算机就是冯-诺依曼体系结构。 存储器就是内存。 由下图可知,寄存器最快,为啥不用寄存器呢? 因为越快价格就最贵,冯诺依曼体系结构的诞生&#xf…...

本地化deepseek

小白都能拥有自己的人工智能 1、我本地环境 系统:win10 cpu:i7(i7-12700),差不多就行 硬盘:500G+2T,可以不用这么大 显卡:七彩虹2060 12G ,够用了 我的配置最高也只能配上8B了, R1模型版本CPUGPU内存存储8B Intel Core i7/AMD Ryzen 7 及以上 无强制要求,有 4…...

利用可变参数模板,可打印任意参数和参数值。(C++很好的调式函数)

很酷的应用&#xff1a; &#xff08;1&#xff09; 如何获取可变参数名 代码例子&#xff1a; #define _test(...) (test_t(#__VA_ARGS__, __VA_ARGS__))template<typename... Args> void test_t(const char* names, Args... args) {std::cout << names <<…...

Yashan DB 体系结构

一、体系结构概况 1.1 线程管理 YashanDB采用多线程架构&#xff0c;线程分为两类&#xff1a; • 工作线程&#xff08;Worker Threads&#xff09;&#xff1a;每个客户端连接到数据库实例时&#xff0c;会创建一个工作线程。工作线程负责处理客户端的SQL请求&#xff0c;执…...

测试工程师Deepseek实战之如何反向PUA它

问: 你是一名资深测试开发工程师 帮我设计一个提效工具&#xff0c;具有以下功能&#xff1a; 1.页面使用PYQT5设计&#xff0c;用两个输入控件&#xff0c;最好是日期类型的控件&#xff0c;第一个日期控件作为开始日期&#xff0c;第二个日期控件作为结束日期&#xff1b;前后…...

Windows系统中在VSCode上配置CUDA环境

前置步骤 安装符合GPU型号的CUDA Toolkit 配置好 nvcc 环境变量 安装 Visual Studio 参考https://blog.csdn.net/Cony_14/article/details/137510909 VSCode 安装插件 Nsight Visual Studio Code Editionvscode-cudacpp 安装 cmake 并配置好环境变量 注&#xff1a;Windows 端…...

React Native 0.76 升级后 APK 体积增大的原因及优化方案

在将 React Native 从 0.71 升级到 0.76 后,打包体积从 40 多 MB 增加到了 80 MB。经过一系列排查和优化,最终找到了解决方案,并将优化过程整理如下。 1. React Native 0.76 体积增大的可能原因 (1) 新架构默认启用 React Native 0.76 默认启用了 New Architecture(新架…...

pycharm找不到conda可执行文件

conda 24.9.2 在pycharm的右下角就可以切换python解释器了...

定时任务框架

常用定时任务框架 JDK 自带的 ScheduledExecutorService 适用于轻量级定时任务&#xff0c;基于线程池实现。API 简单&#xff0c;适用于小规模任务调度。 Quartz 强大的 Java 任务调度框架&#xff0c;支持 Cron 表达式、分布式集群、持久化等。适用于复杂调度场景&#xff0…...

ESP32S3读取数字麦克风INMP441的音频数据

ESP32S3 与 INMP441 麦克风模块的集成通常涉及使用 I2S 接口进行数字音频数据的传输。INMP441 是一款高性能的数字麦克风&#xff0c;它通过 I2S 接口输出音频数据。在 Arduino 环境中&#xff0c;ESP32S3 的开发通常使用 ESP-IDF&#xff08;Espressif IoT Development Framew…...

利用后缀表达式构造表达式二叉树的方法

后缀表达式&#xff08;逆波兰表达式&#xff09;是一种将运算符放在操作数之后的表达式表示法。利用后缀表达式构造表达式二叉树的方法主要依赖于栈结构。 转换步骤 初始化 创建一个空栈。 遍历后缀表达式 对后缀表达式的每个符号依次处理&#xff1a; 遇到操作数 如果当前符…...

使用express创建服务器保存数据到mysql

创建数据库和表结构 CREATE DATABASE collect;USE collect;CREATE TABLE info (id int(11) NOT NULL AUTO_INCREMENT,create_date bigint(20) DEFAULT NULL COMMENT 时间,type varchar(20) DEFAULT NULL COMMENT 数据分类,text_value text COMMENT 内容,PRIMARY KEY (id) ) EN…...

YOLOv12本地部署教程——42%速度提升,让高效目标检测触手可及

YOLOv12 是“你只看一次”&#xff08;You Only Look Once, YOLO&#xff09;系列的最新版本&#xff0c;于 2025 年 2 月发布。它引入了注意力机制&#xff0c;提升了检测精度&#xff0c;同时保持了高效的实时性能。在保持速度的同时&#xff0c;显著提升了检测精度。例如&am…...

SQLAlchemy系列教程:如何防止SQL注入

SQL注入是一种常见的安全漏洞&#xff0c;它允许攻击者通过应用程序的SQL查询操纵数据库。使用ORM工具&#xff08;如SQLAlchemy&#xff09;提供的内置功能可以帮助减轻这些风险。本教程将指导您完成保护SQLAlchemy查询的实践。 了解SQL注入 当攻击者能够通过用户输入插入或操…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强&#xff0c;React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 &#xff08;1&#xff09;使用React Native…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...

docker 部署发现spring.profiles.active 问题

报错&#xff1a; org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机&#xff08;无人驾驶飞行器&#xff0c;UAV&#xff09;技术的快速发展&#xff0c;其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统&#xff0c;无人机的“黑飞”&…...