「递归算法」:两两交换链表中的节点

一、题目

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

示例 1:

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

示例 2:

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

示例 3:

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

二、思路解析

首先提醒一下,链表的题大家千万不要忘记递归解法,因为基本都是大问题可以拆解成相同的子问题的,符合递归的条件。

上来就可以先判断一下边界情况:头节点为空,或者只有一个节点,均返回头节点即可。

然后在每一次递归中,我们要做的就是利用一个节点 tmp ,来交换前后节点的指向即可。

三、完整代码

/*** 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 tmp = swapPairs(head.next.next);ListNode ret = head.next;ret.next = head;head.next = tmp;return ret;}
}

以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!

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

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

相关文章

计算机二级数据库之数据模型(三层相关的结构)

数据模型 模型的概念 模型的介绍模型是对现实世界特征的模拟和抽象, 数据模型的概念: 数据模型是对现实世界中数据特征的抽象,描述的是数据的共性。 数据模型是用来在数据库中抽象、表示和处理现实世界中的数据和信凹。 其相关的共同特…

论文阅读:《Deep Learning-Based Human Pose Estimation: A Survey》——Part 1:2D HPE

目录 人体姿态识别概述 论文框架 HPE分类 人体建模模型 二维单人姿态估计 回归方法 目前发展 优化 基于热图的方法 基于CNN的几个网络 利用身体结构信息提供构建HPE网络 视频序列中的人体姿态估计 2D多人姿态识别 方法 自上而下 自下而上 2D HPE 总结 数据集…

Python二级考试笔记

Python二级考试笔记【源源老师】 01. 字符串 1. 常规功能合集 字符串本身有一些功能,有些之前运用过,这里总结如下: # 功能一:判断字符串类型 print(type("Hello")) print(str(123)) # 转换# 功能二:连…

vs win cmake生成的.sln文件INSTALL右键生成的文件为什么在C:\Program Files (x86) 路径下,指定安装目录

1 cmakelists.txt没有设置变量 CMAKE_INSTALL_PREFIX 2 cmake源码默认生成的文件放置路径 #if defined(_WIN32) && !defined(__CYGWIN__)std::string prgfiles;std::string sysDrive;if (cmsys::SystemTools::GetEnv("ProgramFiles", prgfiles)) {this->…

Java解决查找包含给定字符的单词

Java解决查找包含给定字符的单词 01 题目 给你一个下标从 0 开始的字符串数组 words 和一个字符 x 。 请你返回一个 下标数组 ,表示下标在数组中对应的单词包含字符 x 。 注意 ,返回的数组可以是 任意 顺序。 示例 1: 输入:…

相机图像质量研究(27)常见问题总结:补光灯以及遮光罩对成像的影响--遮光罩

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结:光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结:光学结构对成…

【leetcode题解C++】46.全排列 and 47.全排列II

46. 全排列 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2: 输入&…

[AIGC] 消息积压了,该如何处理?

在构建分布式系统时,开发人员经常会遇到消息积压的问题。当系统的处理能力不足时,消息会在队列中积压,导致系统 slowed down 或 even crashed。为了解决这个问题,我们需要采取一些措施来缓解消息积压。 文章目录 什么是消息积压&…

MyBatis篇----第七篇

系列文章目录 文章目录 系列文章目录前言一、简述 Mybatis 的插件运行原理,以及如何编写一个插件。二、MyBatis实现一对一有几种方式?具体怎么操作的 ?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男…

GoJS可视化JavaScript库讲解

1.简介 GoJS是一个可视化JavaScript库,用于浏览器中创建交互图形,(比如流程图,树图,关系图,力导图等等)。允许您为用户构建各种图表,从简单的流程图、组织图到图表、SCADA和BPMN图表…

windows 下跑起大模型(llama)操作笔记

原贴地址:https://testerhome.com/topics/39091 前言 国内访问 chatgpt 太麻烦了,还是本地自己搭一个比较快,也方便后续修改微调啥的。 之前 llama 刚出来的时候在 mac 上试了下,也在 windows 上用 conda 折腾过,环…

Docker 镜像是什么?常用的镜像命令有哪些?

docker 镜像仓库相关的命令:Docker 镜像仓库是什么?有哪些镜像仓库命令?-CSDN博客 1. Docker 镜像 Docker 镜像是一个轻量级、独立、可执行的软件包,它包含了运行特定应用程序所需的所有内容:代码、运行时环境、系统工…

OpenAI宣布ChatGPT新增记忆功能;谷歌AI助理Gemini应用登陆多地区

🦉 AI新闻 🚀 OpenAI宣布ChatGPT新增记忆功能,可以自由控制内存,提供个性化聊天和长期追踪服务 摘要:ChatGPT新增的记忆功能可以帮助AI模型记住用户的提问内容,并且可以自由控制其内存。这意味着用户不必…

2024 前端面试题(GPT回答 + 示例代码 + 解释)No.1 - No.20

本文题目来源于全网收集,答案来源于 ChatGPT 和 博主(的小部分……) 格式:题目 h3 回答 text 参考大佬博客补充 text 示例代码 code 解释 quote 补充 quote 目录 No.1 - No.20 本文题目来源于全网收集,答案来源于…

算法详解(力扣141——环形链表系列)

博主ID:代码小豪 文章目录 环形链表环形链表的性质分析快慢指针法指针的追及相遇问题 环形链表(2) 环形链表 先来看看环形链表的原题: 中间的部分叙述有点繁杂,简单来概括就是,假如有一个节点&#xff0c…

关于内存相关的梳理

1 关键字 总结 (lowmemory,anr in) 2 知识储备 虚拟机原理 垃圾回收算法 又包含标记 和清除两种算法 标记:程序计数器-已过时,可达性分析 具体可见 http://help.eclipse.org/luna/index.jsp?topic%2Forg.ec…

vue的网络请求以及封装

①先备好springboot的接口 ②安装依赖 在vue中安装网络请求工具的依赖&#xff1a; npm i axios③简单的demo 直接通过axios请求尝试一下&#xff1a; <script> import axios from "axios";export default {name: HomeView,data() {return {users:[]}}, …

跟LV学Python编程——前言

&#x1f610; &#xff01;&#xff01;&#xff01;记得先关注订阅本专栏【跟LV学Python编程】&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;不然后续找不到了哦&#xff01;&#xff01;&#xff01; &#x1f610; 跟LV学Python编程——前言 前言第1章 Py…

【论文精读】EfficientNet

摘要 以往的卷积网络模型通过缩放深度&#xff0c;宽度和图像大小的其中之一或之二来扩大网络以实现更好的结果&#xff0c;但这种思想下经常产生次优的精度和效率的算法。 本文认为通过同时平衡网络宽度、深度、分辨率的缩放倍数来扩大卷积网络&#xff0c;可以达到更好的精度…

作业.....

一、选择题&#xff08;每题2分&#xff0c;共 50 分&#xff09; C语言中&#xff0c;运算对象必须是整型数的运算符是 A 。 A、% B、/ C、%和/ D、* 若有关系x≥y≥z,应使用 A C语言表达式。 A、(x>y)&&(y>z) B、(x>y)AND(…