两两交换链表中的节点 - LeetCode 热题 30

大家好!我是曾续缘🤖

今天是《LeetCode 热题 100》系列

发车第 30 天

链表第 9 题

❤️点赞 👍 收藏 ⭐再看,养成习惯

两两交换链表中的节点

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

示例 1:

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

示例 2:

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

示例 3:

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

提示:

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

解题方法

这道题目要求将链表中相邻的节点两两交换,并返回交换后的链表头节点。在不修改节点内部值的情况下完成交换。我们使用递归的方法解决:

  1. 首先,判断链表是否为空或只有一个节点,如果是则直接返回原链表头节点,因为无需进行交换。
  2. 为了方便理解,定义两个指针,firstsecond,分别指向当前需要交换的两个节点。
  3. 接着是递归解决子问题,递归调用 swapPairs 函数,传入参数:除了firstsecond的链表,得到的是交换后的子链表的头结点,也就是second的下一个结点。
  4. 最后,将 firstnext 指针指向 second,完成交换。
  5. 返回交换后的链表头节点,即 first 节点。

Code

/*** 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) {if(head == null || head.next == null){return head;}ListNode first = head.next, second = head;second.next = swapPairs(head.next.next);first.next = second;return first;}
}

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

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

相关文章

CV界,卷积神经网络真的干不过Transformer了吗?

一、 CNN及其优势和局限性 其他答主回答的角度和内容非常全面&#xff0c;答主也从自己的角度谈谈这个问题。我们不妨先看一下CNN的结构。CNN依靠卷积拥有感受野&#xff0c;具有了时移不变性。 1.1 CNN的局限性 可以看到随着卷积层的增加&#xff0c;feature maps上的一个…

3.00 版本来了!DolphinDB V2.00.12 V3.00.0 正式发布!

一文带你了解 DolphinDB 全新版本升级&#xff01; 本次更新后&#xff0c;3.00.0版本将成为 DolphinDB 的最新版&#xff0c;2.00.12版本变更为稳定版&#xff0c;此前发布的1.30.23版本将成为1.30系列的最后一个版本。接下来&#xff0c;带大家一起看看 DolphinDB V2.00.12 …

【Linux系统编程】第一弹---背景介绍

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、Linux 背景介绍 1.1、发展史 1.1.1、UNIX发展的历史 1.1.2、Linux发展历史 2、开源精神 3、Linux内核官网 4、企业应用…

windows下安装yolov8环境(详细图文教程)

目录 一&#xff1a;前言 二&#xff1a;安装yolov8 一&#xff1a;前言 最近看了 YOLO 的发展史&#xff0c;发现在机器视觉领域的应用非常广泛&#xff0c;f刚好最近一直在做机器视觉的工作&#xff0c;特此记录下搭建yolov的环境。我们使用的版本是yolov8的就用这个作为演…

带计步跑步功能,余额宝、早起打卡与积分商城金融众筹一体化平台

检测自动增加步数 Bug问题: 无 测试环境: PHP5.6Mysql5.6 源码简介: 袋鼠投资理财&#xff0c;本程序有技步跑步功能&#xff0c;余额宝功能&#xff0c;早起打卡&#xff0c;积分商城&#xff0c;抽奖功能等各方面为一体的综合理财项目。 功能列表: 袋鼠投资理财&#xf…

实体抽取全解析:技术与实战

目录 一、前言二、实体抽取技术概览基于规则的实体抽取基于统计的实体抽取基于深度学习的实体抽取 三、实体抽取的发展历程早期的实体抽取方法基于规则和词典的方法基于特征的机器学习方法 深度学习时代的实体抽取从传统模型到神经网络序列标注模型的兴起预训练语言模型的革命 …

C#互联网区域医学检验中心云LIS系统源码

云LIS联通四级&#xff08;市、县、乡、村&#xff09;检验服务网构建互联网检验服务新体系落地检验资源区域共享建设。云LIS系统是一种基于云计算技术的区域实验室信息管理系统&#xff0c;它的主要功能是管理实验室中的各种信息数据&#xff0c;包括样品数据、检测结果、仪器…

Linux使用命令发送get或post请求

在linux服务器直接发送get或者post请求可以使用curl命令和wget命令。 curl命令&#xff1a; curl http://localhost:8080/应用/接口号 输入此命令之后会直接将响应结果展示到服务器上&#xff0c;如&#xff1a; 输入命令&#xff1a;curl -i curl -i http://localhost:…

RabbitMQ消息模型之Fanout消息模型

Fanout消息模型 * 广播模型&#xff1a;* 一个交换机绑定多个队列* 每个队列都有一个消费者* 每个消费者消费自己队列中的消息&#xff0c;每个队列的信息是一样的生产者 package com.example.demo02.mq.fanout;import com.example.demo02.mq.util.ConnectionUtils; impor…

神策sdk埋点

一&#xff0c;提出数据需求 首先要把数据需求提出来&#xff0c;先落地成一个标准的文档。数据需求是由业务或者产品去做&#xff0c;然后设计数据采集方案是基于我们的数据需求&#xff0c;首先要满足数据需求&#xff0c;其次在数据在设计完成之后要进行评审。/基于需求设计…

【PyQt5】环境配置

PyQt5 环境配置 一、前言1.1 PyQt5介绍1.2 PyCharm集成Pyqt5 二、pyqt5安装三、PyQt5-tools工具包安装四、常用工具环境配置4.1、环境变量配置4。2、验证是否安装成功 五、pycharm中设置Qt工具&#xff08;Qt Designer、PyUIC、PyRcc&#xff09;5.1、配置Qt Designer5.2、配置…

gitee上传出现git did not exit cleanly (exit code 1)的错误

在最后push的时候出现下面的结果&#xff1a; 出现这个错误的原因有好多种&#xff0c;目前介绍博主遇到的两种&#xff1a; 在第一次进行push操作的时候&#xff0c;需要输入用户名和密码&#xff0c;如果输入错误&#xff0c;则最后可能会出现上述报错 解决方法&#xff1a;…

centos7安装 on-my-zsh

如下&#x1f447; yum install -y zsh chsh -s /bin/zsh yum install -y git sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" 重启即可生效啦~

Python爬虫怎么挣钱?6个Python爬虫赚钱方式,搞搞副业不是问题

1.最典型的就是找爬虫外包活儿 网络爬虫最通常的的挣钱方式通过外包网站&#xff0c;做中小规模的爬虫项目&#xff0c;向甲方提供数据抓取&#xff0c;数据结构化&#xff0c;数据清洗等服务。新入行的程序员大多都会先尝试这个方向&#xff0c;直接靠技术手段挣钱&#xff0…

Oladance、南卡、Cleer开放式耳机好不好用?深度测评剖析实力王!

​近期&#xff0c;不少朋友都在询问如何挑选适合自己的开放式耳机。面对市场上众多品牌的开放式耳机&#xff0c;它们在音质、舒适度和性能上都有所差异&#xff0c;挑选一款合适的耳机对于音乐爱好者来说尤为重要。购买到品质不达标的耳机可能会影响音乐体验&#xff0c;甚至…

sonar搭建(linux系统)

前景 静态代码扫描是CI/CD中重要的一环&#xff0c;可以在代码提交到代码仓库之后&#xff0c;在CI/CD流程中加入代码扫描步骤&#xff0c;从而及时地对代码进行质量的检查。这可以有效地降低后期维护成本&#xff0c;优化产品质量&#xff0c;提高产品交付速度。同时&#xf…

浅尝一下ECS(Entity Component System)(学习笔记)

参考文章&#xff1a;浅谈Unity ECS&#xff08;一&#xff09;Uniy ECS基础概念介绍&#xff1a;面向未来的ECS - 知乎 (zhihu.com) 视频链接&#xff1a;【青幻译制】GDC讲座系列之三 守望先锋的游戏架构和网络代码_哔哩哔哩_bilibili 云风的 BLOG: 浅谈《守望先锋》中的 E…

保证线程安全的10个小技巧分享

对于从事后端开发的同学来说&#xff0c;线程安全问题是我们每天都需要考虑的问题。 线程安全问题通俗的讲&#xff1a;主要是在多线程的环境下&#xff0c;不同线程同时读和写公共资源&#xff08;临界资源&#xff09;&#xff0c;导致的数据异常问题。 比如&#xff1a;变…

家居网购项目(一)

文章目录 1.前置知识1.项目开发阶段2.Java经典三层架构3.项目具体分层&#xff08;包方案&#xff09;4.MVC 2.开发环境搭建1.新建普通javaweb项目&#xff0c;导入jar包2.创建项目结构3.搭建前端页面 3.会员注册前端js校验1.需求分析2.代码login.html 3.结果4.调试阶段1.验证信…

LeetCode 题目:两个总和

LeetCode 题目&#xff1a;两个总和 描述&#xff1a; 编写一个函数&#xff0c;输入为一个整数数组nums和一个目标整数target&#xff0c;要求找到数组中两个数的和等于target&#xff0c;并返回这两个数的索引。 函数定义&#xff1a; def two_sum(nums: List[int], targe…