Leetcode-每日一题【24.两两交换链表中的节点】

news2024/11/28 22:52:51

题目

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

示例 1:

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


示例 2:

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


示例 3:

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

 

提示:

  • 链表中节点的数目在范围 [0, 100] 内
  • 0 <= Node.val <= 100

解题思路

1.判断链表的头节点和头节点的下一个节点是否为null,若为null返回头节点

2.设置一个虚拟头节点 dummy 令 dummy.next == head,再设置一个 cur 节点对需要处理的链表用while进行遍历,直到cur.next == null && cur.next.next == null;

3.设置一个 chge节点指向cur.next节点(也就是我们要进行交换的节点),为了防止后面还未交换的节点丢失,我们设置一个last节点指向chge后还未交换的节点。

4.对cur节点和chge节点进行交换,直到while循环结束,返回dummy.next

代码实现

class Solution {
    public ListNode swapPairs(ListNode head) {
        if(head == null || head.next == null){
            return head;
        }
       ListNode dummy = new ListNode(0);
       dummy.next = head;
       ListNode cur = dummy;
       while(cur.next != null && cur.next.next != null){
           ListNode chge = cur.next;
           ListNode last = cur.next.next;
           chge.next = last.next;
           cur.next = last;
           last.next = chge;
           cur = cur.next.next;
       } 
       return dummy.next;
    }
}

测试结果

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/763708.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【玩转Linux操作】详细讲解 Linux分区磁盘 操作以及相关的命令

&#x1f38a;专栏【玩转Linux操作】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【Counting Stars 】 欢迎并且感谢大家指出小吉的问题&#x1f970; 文章目录 &#x1f354;什么是Linux的分区&#x1f354;Linux分区的作用&a…

没有代码基础如何学习自动化测试

因为最近在群里有一些同学&#xff0c;之前没做过自动化测试&#xff0c;但是限于领导要求&#xff0c;或者自己想提升了&#xff0c;开始研究自动化测试&#xff0c;最近记忆比较深的低级的几个问题是&#xff1a; 1、编写一个python的类将 __init__写成_init_苦于问题一直解…

springboot项目使用mybatis-plus启动报错

在使用最新的mybatis-plus的时候&#xff0c;遇到一个报错 org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name payMentController: Unsatisfied dependency expressed through field payMentService; nested exception is…

mybatis-plus代码生成器使用指南

mybatis-plus代码生成器 官网&#xff1a;mp代码生成器&#xff08;新&#xff09; 1、导入依赖 使用最新版本&#xff1a;3.5.3.1版本&#xff0c;老版本不兼容 <properties><mybatis-plus.version>3.5.3.1</mybatis-plus.version><freemarker.versio…

集成VCO-Cadence ADE相位噪声分析

集成VCO-Cadence ADE相位噪声分析 简介环境软件工艺 参考振荡器原理图相位噪声说明pss设置1234 pnoise设置12345 结果 简介 本文主要是使用Cadence ADE仿真1GHz交叉耦合振荡器&#xff0c;得到相位噪声曲线&#xff0c;主要记录仿真设置过程&#xff0c;仅供参考&#xff0c;如…

零拷贝技术(DMA、MMAP、sendfile)

零拷贝mmap、sendfile 定义 零拷贝技术主要是解决传统网络I/O操作中发送文件的性能问题&#xff1a;如下图表示一次read和write时传统I/O涉及到的CPU操作&#xff1a; 涉及到4次用户态↔内核态上下文切换&#xff0c;其中read切换两次、write切换两次&#xff1b;涉及到4次数…

IntelliJ IDEA 忽略Git提交

在项目下新建 .gitignore 文件 在 .gitignore 文件写入以下内容&#xff0c;从上图可以看到&#xff0c;忽略提交的这些目录/文件变成了黄色

P2372 yyy2015c01挑战算周长

yyy2015c01挑战算周长 题目背景 yyy2015c01 快速的解决了问题&#xff0c;受到邻居们的赞许&#xff0c;高兴的回到家&#xff0c;把糖给了妈妈&#xff0c;吃了香喷喷的午饭&#xff0c;又睡了一个甜甜的午觉&#xff0c;感觉人生真美好。下午爸爸回到家&#xff0c;听说了 …

设计模式 ~ 单例模式

单例模式 单例模式是一种设计模式&#xff0c;指在确保一个类只有一个实例&#xff0c;并提供一个全局访问点来访问该实例&#xff1b; 前端对于单例模式不常用&#xff0c;但是单例的思想无处不在&#xff1b; 创建之后缓存以便继续使用&#xff1b; 如&#xff1a;弹窗、遮罩…

HCIP——HCIA回顾及静态实验

HCIP HCIA一、知识回顾1、OSI七层参考模型&#xff1a;2、重要的几个协议报头格式 二、静态实验1、实验拓扑图2、实验要求3、实验思路4、实验步骤1、给接口划分IP地址以及配置环回地址2、交换机配置划分VLAN3、配置静态路由4、配置DHCP服务5、测试6、优化 HCIA 1、七层参考模型…

遭黑客攻击后反而涨了千百倍?

近期&#xff0c;遭遇黑客攻击后的某数字藏品平台悄悄“复活”&#xff0c;引发业界关注。复出后&#xff0c;该平台上的数字藏品持续暴涨&#xff0c;大部分涨幅均超过百倍&#xff0c;少数藏品甚至超过了千倍。事出反常必有妖。这波涨势难免令人怀疑其中是否存在投机炒作行为…

常用API学习05(Java)

Runtime Runtime表示当前虚拟机的运行环境&#xff0c;Runtime的方法我们不能自己直接去new。 public static Runtime getRuntime() 当前系统的运行环境对象 public void exit(int status) 停止虚拟机 public int availableProcessors() 获得cpu的线程数 publ…

UEC++:间接属性引用

1. 优点&#xff1a;优化内存和时间加载问题&#xff1b; 2. 实现&#xff1a;4.18之前使用的是FStringAssetReference&#xff1a; 所有资源文件都能拾取&#xff01;&#xff01;&#xff01; 结果&#xff1a; 3. 实现&#xff1a; 设置音频文件&#xff1a;

ping的工作原理

ICMP包头格式&#xff1a; icmp报文封装在IP包内&#xff0c;工作在网络层&#xff0c;是IP协议帮手。 查询报文类型 可向对端主机发送回送请求的消息&#xff08;类型 8&#xff09;也可接收对端主机发回来的回送应答消息&#xff08;类型 0&#xff09; 查询报文又增添了标…

怎么通过UI自动化方式获取文章信息?

出于学习研究&#xff0c;对某账号的文章、视频分析一翻&#xff0c;尝试使用自动化方式看能否获取相应信息。 获取某号的文章有多重方法&#xff1a; 第一种是通过搜狗浏览器搜索账号&#xff08;这种方式每天只能获取一篇文章&#xff0c;基本上没啥用。&#xff09;&#…

手把手教你写通讯录(含动态版)

目录 一、框架 二、实现 1.初始化通讯录 2.增加联系人 3.打印通讯录 4.删除联系人 5.修改联系人 6.查找联系人 7.退出通讯录 8.拓展&#xff1a;通讯录排序 9.全代码 三、动态版 1.结构体修改 2.初始化修改 3.扩容实现 4.善后函数 5.全代码 一、框架 实现通讯录…

IntelliJ IDEA 版本控制

IntelliJ IDEA 版本控制&#xff08;VCS&#xff09;日常使用方法备忘 1、搁置更改 2、移至另一个更改列表 对于工程项目中的配置文件&#xff0c;已经在本地修改但是不能提交&#xff0c;如果在提交项目代码时全选变更的文件&#xff0c;可能会误提交配置文件&#xff0c;此…

语音芯片播放消耗电流过大,导致MCU复位

1、问题 在多次遇到播放声音时突然黑屏&#xff0c;单片机复位或者语音播放不全现象&#xff0c;之前使用示波器测量播放声音时供电电池电压&#xff0c;电池电压的确被拉低。之前的解决方案是使用南孚电池&#xff0c;先把供电电压给高一些&#xff0c;这样即使把电压拉低&am…

Mybatis中表关系查询结果集映射

文章目录 前言1. 实体类设计1.1 用户表1.2 地址表1.3 博客表1.4 粉丝互关表 2.插入数据3.表关联查询3.1 一对一关系3.2 一对多关系3.3 多对多关系 前言 resultMap 元素是 MyBatis 中最重要最强大的元素。它可以让你从 90% 的 JDBC ResultSets 数据提取代码中解放出来&#xff…

人工智能数学基础--概率与统计15:多维随机变量/向量

一、多维随机变量定义 一般地,设X(X1,X2,,X,)为一个n维向量&#xff0c;其每个分量,即X1、、Xn都是一维随机变量&#xff0c;则称X是一个n维随机向量或n 维随机变量。 与随机变量一样&#xff0c;随机向量也有离散型和连续型之分。 二、离散型多维随机向量 一个随机向量X(X…