leetcode 24. Swap Nodes in Pairs(链表中成对交换节点)

香橙派OPi 6系列选型指南:RK3588与RK3588S开发板深度对比 开发板选型是嵌入式系统设计的关键环节,尤其在边缘计算和AI推理等场景中,芯片的差异直接影响硬件架构。瑞芯微RK3588及其精简版RK3588S是当前高端开发板的核心方案,两者在PCIe通道、显示输出和SATA支持上存在显著区别。理解这些原理,有助于工程师根据项目需求快速匹配产品。香橙派OPi 6系列基于这两款芯片,衍生出OPi 6、OPi 6 Pro与OPi 6 Max三种形态:紧凑型适合嵌入式门禁与AI盒子,Pro版凭借双屏异显和PCIe 3.0满足收银机与视频分析,Max的双2.5G网口和大内存则面向轻 阅读详情

在这里插入图片描述

给出一个单向链表,两两交换node,已经交换过的node不参与下一轮交换。

思路:

交换2个node需要3个指针,pre, cur, post, 分别指向前一节点,当前节点,下一节点。

而head节点是指向第一个元素的,第一个元素发生变动时,head也要变。为了不这么麻烦,新定义一个newHead指针,newHead.next指向链表的第一个元素。这样做的好处是,不管第一个元素变成谁,最后只需要返回newHead.next。

这里用head代替cur指针(可以少申请一个指针内存)。

刚开始时pre = newHead, cur = head, post = head.next, pre->head->post.
交换节点后变成pre->post->head.

下一轮这3个指针都需要移动,首先pre=head, 如果pre.next==null,就结束了。
再移动head=pre.next, post=head.next, 这样它们又恢复了pre->head->next的关系。继续下一轮。

    public ListNode swapPairs(ListNode head) {
        if(head == null || head.next == null) return head;

        ListNode newHead = new ListNode();
        newHead.next = head;
        ListNode pre = newHead;
        ListNode post = head.next;
        //head is cur node

        while(post != null) {
            //swap
            head.next = post.next;
            pre.next = post;
            post.next = head;

            //after swap is: pre->post->head
            pre = head;
            head = pre.next;
            if(head == null) break;
            post = head.next;
        }
        return newHead.next;
    }
YOLO11涨点优化:SPPF原创自研创新 | SPPF创新结构,重新设计全局平均池化层和全局最大池化层,增强全局视角信息和不同尺度大小的特征 SPPF_improve利用全局平均池化层和全局最大池化层,加入一些全局背景信息和边缘信息,从而获取全局视角信息并减轻不同尺度大小所带来的影响 阅读详情

相关推荐

SAP 资产主数据屏幕增强:对比字段追加与子屏幕/页签 2 种方案优劣

本文深入对比了SAP资产主数据(AS01/AS03)屏幕增强的两种方案:字段追加与子屏幕/页签。从技术实现、业务适配、系统维护等维度分析各自优劣,提供方案选型决策树和混合方案实践建议,帮助企业在SAP实施中做出最优选择。

weixin_28559803的博客 283

LeetCode Java刷题笔记—24. 两两交换链表中的节点

LeetCode Java刷题笔记—24. 两两交换链表中的节点

终生学习践行者 465

激光雷达与相机融合(四)----基于激光雷达与相机的碰撞检测

在这一部分,基于前面的各个部分内容,将利用激光雷达和相机实现目标的检测分类及单目标跟踪,并对车辆前方的车辆目标计算相应的碰撞时间TTC。计算方法分别利用相机和雷达实现。 1.系统的总体架构: 2.TTC计算 简单介绍一下通过激光雷达和相机计算碰撞时间的原理: 利用激光雷达点计算碰撞时间:首先根据检测框聚类出前车目标的点,并过滤掉这些点中的离群点,然后找出这些点中相对于本车最近的点,基于前后两帧以及数据采集频率就可以求解出相对速度,然后用当前帧的距离除以速度得出当前的TTC。但该方法对最近点的选取稳定性不是

张飞飞的博客 3985

链表-LeetCode24. 两两交换链表中的节点(Python)

''' 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL ''' class ListNode(object): def __init__(self, x): self.val = x self.next = None class Solutio...

IOT_victor的博客 452

免费获取船舶轨迹数据?手把手教你用Python处理中国海洋卫星AIS数据

本文详细介绍了如何免费获取中国海洋卫星AIS数据,并使用Python进行船舶轨迹数据的处理与分析。从数据源评估到自动化处理流水线,再到高级分析与可视化技巧,手把手教你避开常见问题,实现高效数据处理。特别适合航运数据分析、物流优化和海上安全研究等领域的研究者和开发者。

weixin_42616115的博客 320

Docker 实战:使用 Docker Desktop 在 MacOS 上安装 Docker

在这采用 Docker Desktop 在 Mac 上来安装 Docker。Docker Desktop 是 Docker 的管理桌面 IDE,提供了一个直观的GUI(图形用户界面),允许您直接在本机上管理容器、应用程序以及镜像。适用于 Mac、Linux 以及 Windows 环境,允许您构建、共享和运行容器化应用程序和微服务。Docker Desktop 可以大大降低在复杂配置上的时间,因此您可以专注于编写代码。它负责端口映射、文件系统问题和其他默认设置,并定期更新 Bug 修复和安全更新。

SmartSi 8004

算法通关村第二关——成对交换链表节点问题解析

两两交换链表节点

KrisAlthea的博客 574

基于强化学习控制策略的三相逆变器仿真

强化学习控制器的核心在于定义状态空间、动作空间、奖励函数以及选择合适的强化学习算法(例如DQN、DDPG等)。对于三相逆变器,状态可以是输出电压、电流等信息;动作则可能是调制指数的变化量;奖励函数则应鼓励快速准确地跟踪参考信号。定义状态空间和动作空间状态空间可以包括逆变器的输出电压、电流及其变化率等信息。动作空间则是控制器可执行的动作,例如PWM信号的调整幅度。matlab深色版本% 定义状态和动作空间维度numObs = 6;% 假设有六个状态变量(例如三相电压和电流)

amy_mhd的博客 135

Ubuntu 20.04部署FAST-LIO2与Livox MID-360:从环境配置到SLAM实战

激光雷达惯性里程计(LIO)是机器人自主导航与三维建图的核心技术,它通过融合激光雷达点云与惯性测量单元(IMU)数据,实时估计载体位姿。其原理在于利用IMU的高频数据预测运动,再通过激光雷达扫描的环境特征进行匹配校正,从而在无GPS环境下实现稳定、低漂移的定位。这项技术的工程价值在于为移动机器人、自动驾驶等领域提供了可靠的局部状态估计基础。在实际应用中,常需在Ubuntu系统上集成特定硬件驱动与开源算法。本文聚焦于Livox MID-360激光雷达与FAST-LIO2算法的实战部署,详细解析了在Ubuntu

weixin_30856725的博客 399

基于Simulink的轨道交通信号控制系统仿真详细介绍

轨道交通信号控制系统是确保列车安全、高效运行的核心技术。通过Simulink进行信号控制系统的仿真,可以验证系统的设计、优化调度策略并提高安全性。以下是如何在MATLAB和Simulink中设计并仿真一个轨道交通信号控制系统的详细步骤。通过上述步骤,我们成功设计并实现了基于Simulink的轨道交通信号控制系统仿真。该系统能够根据列车位置、速度和轨道状态生成控制指令,确保列车的安全、高效运行。通过虚拟场景仿真、硬件在环测试和实机测试,验证了系统的性能,并通过参数优化进一步提升了系统的可靠性。引入智能调度。

xiaoheshang_123的博客 461

学Simulink--特殊天气场景实例:基于Simulink的智能车辆雨天行驶仿真(感知与控制)

本文详细介绍了基于Simulink的智能车辆雨天行驶仿真系统。通过构建降雨-路面-传感器-控制全链路耦合模型,实现了雨天场景下的自适应控制。系统根据降雨强度动态调整路面附着系数和传感器性能参数,上层控制算法相应调整ACC安全距离、ESC增益等参数。仿真结果表明,系统能在不同降雨强度下自动降低车速、增大跟车距离,保持车辆稳定性。文章还提供了完整的Simulink建模流程、关键模型实现方法及工程实践要点,为全天候自动驾驶功能开发提供了有效的验证平台。

xiaoheshang_123的博客 166

成对交换结点(swap-nodes-in-pairs)

Given a linked list, swap every two adjacent nodes and return its head. For example, Given1->2->3->4, you should return the list as2->1->4->3.

Ananbei的博客 742

【存算一体架构实战】四、突破编译壁垒:手把手实现AI模型到存算硬件的自动映射

摘要:存算一体硬件的性能优势难以充分释放,核心瓶颈在于传统编译器无法高效适配"计算-存储融合"的新型架构。本文系统剖析传统编译流程在存算硬件上的三大痛点:数据布局不匹配导致90%带宽浪费、算子映射效率低使硬件利用率不足30%、缺乏专用优化_pass导致延迟居高不下。通过构建MLIR-PIM编译框架,实现从AI模型到存算硬件的全自动化映射,核心流程包括:TensorFlow模型→MLIR Dialect转换→存算优化_pass→硬件指令生成。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 241

[LeetCode] 024. Swap Nodes in Pairs (Medium) (C++/Python)

[LeetCode] 024. Swap Nodes in Pairs (Medium) (C++/Python)

水果君の日常 2574

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

24. Swap Nodes in Pairs**

24. Swap Nodes in Pairs** https://leetcode.com/problems/swap-nodes-in-pairs/ 题目描述 Given a linked list, swap every two adjacent nodes and return its head. You may not modify the values in the list’s no...

珍妮的选择的博客 317

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Swap Nodes in Pairs 链表两两交换节点@LeetCode

判断比较花时间,需要分奇数个节点和偶数个节点的情况 package Level2; import Utility.ListNode; /** * Swap Nodes in Pairs * * Given a linked list, swap every two adjacent nodes and return its head. For example, Gi

4060

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Leetcode 24. Swap Nodes in Pairs

题目描述:交换两两链表中的节点。 题目链接:Leetcode 24. Swap Nodes in Pairs 这个题目的难点在于要记录前面的信息,故建一个dummy结点来记录当前需要交换两个点的前驱。然后不断更新就可以了。 代码如下 /** * Definition for singly-linked list. * public class ListNode { * int ...

Za七杂⑧ 185

leetcode24+Swap Nodes in Pairs

https://leetcode.com/problems/swap-nodes-in-pairs/ struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; class Solution { public: ListNode* swapPairs(...

小堃哥的专栏 93

Leetcode_24_Swap Nodes in Pairs

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/43302355 Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1->2->3->4, you should return the list as 2->1->4->3. Your algorithm

皮斯特劳沃 1724

LeetCode24. Swap Nodes in Pairs

LeetCode24. Swap Nodes in Pairs

bookman的博客 339

LeetCode 24. Swap Nodes in Pairs 成对交换节点 C++/Java

LeetCode 24. Swap Nodes in Pairs 成对交换节点 C++/Java Given alinked list, swap every two adjacent nodes and return its head. You maynot...

weixin_30340617的博客 158

Leetcode 24. Swap Nodes in Pairs(python+cpp)

Leetcode 24. Swap Nodes in Pairs题目解法:iterative或recursion 题目 解法:iterative或recursion 链表最基础的操作,必须要会的 首先讲iterative的步骤: 定义一个dummy node储存指向链表头部的指针,用来最后返回结果 定义一个prev_node,参与交换过程,保存指向下一组交换的两个节点中交换后的第一个节点指针,这样才能track整条列表 取出当前需要交换的两个节点,建议重新命名,这样就不会导致交换的时候很多next搞混

qq_37821701的博客 372

【leetcode】【medium】24. Swap Nodes in Pairs

24.Swap Nodes in Pairs Given alinked list, swap every two adjacent nodes and return its head. You maynotmodify the values in the list's nodes, only nodes itself may be changed. Example: Given...

lemonade13的博客 138

leetcode 24. Swap Nodes in Pairs

目录 一、问题描述 二、代码实现 1、独立处理第一组节点 2、引入伪头节点使得处理形式统一起来 3、递归版本 https://leetcode.com/problems/swap-nodes-in-pairs/ 将单链表每两个节点互换位置。注意不能只改变节点的值,节点必须实实在在地进行交换。 一、问题描述 测试用例: Example: Given 1->2...

小景的博客 256

[leetcode] 24. Swap Nodes in Pairs

Description Given a linked list, swap every two adjacent nodes and return its head. You may not modify the values in the list’s nodes, only nodes itself may be changed. 两两交换链表中的节点的Python和C++代码。

Learning from the mistakes 158

Leetcode题解-24. Swap Nodes in Pairs

Leetcode题解-24. Swap Nodes in PairsGiven a linked list, swap every two adjacent nodes and return its head.For example, Given 1->2->3->4, you should return the list as 2->1->4->3.Your algorithm should u

hzw2945的博客 296
上一篇: ubuntu clion debug ros程序
下一篇: leetcode 39. Combination Sum(组合数之和)
蓝羽飞鸟
博客等级 码龄8年 1万+粉丝 727原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝羽飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值