图解LeetCode——206. 反转链表

news2025/1/14 1:12:28

一、题目

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。

二、示例

2.1> 示例 1:

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

2.2> 示例 2:

输入】head = [1,2]
输出】[2,1]

2.3> 示例 3:

输入】head = []
输出】[]

提示:

  • 链表中节点的数目范围是 [0, 5000]
  • -5000 <= Node.val <= 5000

三、解题思路

3.1> 思路1:迭代方式

针对链表反转操作,我们首先可以选择采用迭代的方式进行转换,即,每当遍历两个节点的时候,我们都将next指针反转执行前置节点即可,此处需要注意的是,由于我们要修改next指针,所以,遍历的时候,我们要先将原本的next指针指向的对象进行缓存,然后再改变next指针。这么做的目的就是为了继续可以向后去执行遍历操作。具体操作方式请见下图所示:

3.2> 思路2:递归方式

根据题目描述,我们要将原链表执行翻转操作。那么,由于单向链表的单一方向性,我们如果想翻转链表,可以采取递归的方式进行处理,具体逻辑如下所示:

步骤1】每次递归都要将head.next节点作为方法的入参进行传递。
步骤2】当传入的节点为null或者它的next节点为null,则直接返回该节点。
步骤3】当遍历到最后一个节点的时候,就可以进行两个节点之间的链表反转操作了。

四、代码实现

4.1> 实现1:迭代方式

class Solution {
    public ListNode reverseList(ListNode head) {
        ListNode pre = null, temp = null;
        while (head != null) {
            temp = head.next;
            head.next = pre;
            pre = head;
            head = temp;
        }
        return pre;
    }
}

4.2> 实现2:递归方式

class Solution {
    public ListNode reverseList(ListNode head) {
        if (head == null || head.next == null) return head;
        ListNode node = reverseList(head.next);
        head.next.next = head;
        head.next = null;
        return node;
    }
}

今天的文章内容就这些了:

写作不易,笔者几个小时甚至数天完成的一篇文章,只愿换来您几秒钟的 点赞 & 分享 。

更多技术干货,欢迎大家关注公众号“爪哇缪斯” ~ \(^o^)/ ~ 「干货分享,每天更新」

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

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

相关文章

六级备考32天|CET-6|分数分布|题型分布|翻译·贴春联·CCTV·印章|16:30~17:47

目录 英语六级总分&#xff1a;710分 一、英语六级作文 二、听力部分 248.5分 三、阅读理解35% 248.5分 四、翻译部分 汉译英 15% 106.5分 五、做题技巧 写作和翻译需要重点强化练习&#xff01; 六、积累 英语六级总分&#xff1a;710分 一、英语六级作文 说明&…

HTTP第13讲——HTTP的实体数据

数据类型与编码 在 TCP/IP 协议栈里&#xff0c;传输数据基本上都是“headerbody”的格式。但 TCP、UDP 因为是传输层的协议&#xff0c;它们不会关心 body 数据是什么&#xff0c;只要把数据发送到对方就算是完成了任务。 而 HTTP 协议则不同&#xff0c;它是应用层的协议&am…

pytorch实战11:基于pytorch简单实现DCGAN

基于pytorch简单实现DCGAN 前言 ​ 最近会把一些简单的CV领域的架构进行复现&#xff0c;完整的代码在最后。 本系列必须的基础 ​ python基础知识、CNN原理知识、pytorch基础知识 本系列的目的 ​ 一是帮助自己巩固知识点&#xff1b; ​ 二是自己实现一次&#xff0c;可以发…

ZED使用指南(五)Camera Controls

六、其他 1、相机控制 &#xff08;1&#xff09;选择视频模式 左右视频帧同步&#xff0c;以并排格式作为单个未压缩视频帧流式传输。 在ZED Explorer或者使用API可以改变视频的分辨率和帧率。 &#xff08;2&#xff09;选择输出视图 ZED能以不同的格式输出图像&#xf…

Android系统原理性问题分析 - Android Native程序的结构设计方式

Android核心原理 5.3 声明 在Android系统中经常会遇到一些系统原理性的问题&#xff0c;在此专栏中集中来讨论下。Android系统主要由Java和C/C两个世界构成&#xff0c;此篇分析处于Java世界和C/C世界的两个进程如何实现进程间通信的问题。此篇参考一些博客和书籍&#xff0c…

Go程序设计语言翻译问题(goroutine)

中文&#xff1a;Go程序设计语言 2017.1 英文&#xff1a;The Go Programming Language 2016 8.4.2. Pipelines 8.4.2管道章节 修正&#xff1a; 第一个管道应该改成通道&#xff0c;cannel是概念词汇 重要概念词汇不能混淆 来自chatGPT3.5&#xff1a; Go Pipelines和channel…

(kubernetes yaml文件|--dry-run导出yaml文件

kubernetes yaml文件|--dry-run导出yaml文件 YAML 语法格式&#xff1a;二 查看 api 资源版本标签三 写一个nignx.yaml文件demo四、编写service服务的资源清单详解k8s中的port五 用–dry-run命令生成yaml资源清单六 将现有的资源生成模板导出写yaml太累怎么办&#xff1f; YAML…

【Linux】1. Linux常见指令

专栏导读 &#x1f341;作者简介&#xff1a;余悸&#xff0c;在读本科生一枚&#xff0c;致力于 C方向学习。 &#x1f341;收录于 C 专栏&#xff0c;本专栏主要内容为 C 初阶、 C 进阶、 STL 详解等&#xff0c;持续更新中&#xff01; &#x1f341;相关专栏推荐&#xff1…

社会关系抽取赛题提交指南

社会关系抽取赛题提交指南 一、赛题背景 本次主要为大家介绍社会科学计算大赛的赛题之一---社会关系抽取。 1.技术发展 关系抽取(Relationship Extraction, RE)是信息抽取的一个重要任务,其目标是从文本中抽取实体之间的关系。RE技术发展历程主要有以下几个阶段:1. 规则与模…

初窥机器视觉与卷积神经网络

文章目录 1. 什么是卷积神经网络2. 卷积运算3. 池化层4. 卷积神经网络的整体架构 1. 什么是卷积神经网络 卷积神经网络(convolutional neural network&#xff0c;CNN)主要用于计算机视觉相关任务&#xff0c;但处理对象并不局限于图像&#xff0c;CNN在序列和语音等上的应用也…

2023年陕西省《网络建设与运维》技能大赛试题

项目简介: 某集团公司原在北京建立了总公司,后在成都建立了分公司,广东设立了办事处。集团设有产品、营销、法务、财务、人力5个部门,全网采用OSPF、RIP、ISIS、BGP路由协议进行互联互通。集团在北京建立两个数据中心,贵州建立异地灾备数据中心。 公司网络拓扑如图1所示,…

功能要进阶自动化测试,你必须要了解的十大自动化测试框架

什么是自动化测试框架&#xff1f; 自动化测试框架&#xff0c;即是应用于自动化测试所用的框架。按照框架的定义&#xff0c;自动化测试框架要么是提供可重用的基础自动化测试模块&#xff0c;如&#xff1a;selenium 、watir等&#xff0c;它们主要提供最基础的自动化测试…

【Python入门篇】——Python中循环语句(while循环的嵌套应用,嵌套案例)

作者简介&#xff1a; 辭七七&#xff0c;目前大一&#xff0c;正在学习C/C&#xff0c;Java&#xff0c;Python等 作者主页&#xff1a; 七七的个人主页 文章收录专栏&#xff1a; Python入门&#xff0c;本专栏主要内容为Python的基础语法&#xff0c;Python中的选择循环语句…

监控系统经典架构详解

要了解一个监控系统那么我们就先要了解他的架构&#xff0c;看看监控系统是由哪些模块组成&#xff0c;各个模块是如何相互协调。我们将众多主流监控系统架构进行逻辑抽象和概括。 典型架构 从上图&#xff08;监控系统经典架构图&#xff09;来看&#xff0c;从左往右&#x…

Android RecyclerView实现吸顶动态效果

文章目录 一、ItemDecoration二、实现RecyclerView吸顶效果1、实现一个简单的RecyclerView2、通过ItemDecoration画分割线3、画出每个分组的组名4、实现吸顶效果 完整demo 链接:https://download.csdn.net/download/JasonXu94/87786702 一、ItemDecoration ItemDecoration 允…

python实现学生成绩管理程序,包含各科成绩的录入,计算各个学生的总分和平均分,统计各个科目的最高分、最低分和平均分。

一、编程题目 编程题目&#xff1a;使用python实现学生各科成绩的录入&#xff0c;计算各个学生的总分和平均分&#xff0c;统计各个科目的最高分、最低分和平均分。其中学生人数通过输入来决定&#xff0c;科目包括语文、数学和英语这三门课程。&#xff08;保留一位小数&…

JavaEE 5 (4/28)

1.wait() 和notify() 调用wait后做的三件事 1.释放锁 2.等待其他线程通知 3.收到通知后重新上锁,继续执行 要想实用wait和notify就得搭配synchronized 获取锁 wait哪个对象就要针对哪个对象加锁 Java中线程是随机抢占式执行的,实际上线程的执行我们一定要有一个顺序. join可以…

阿里云服务器可以做什么?十大使用场景举例说明

使用阿里云服务器可以做什么&#xff1f;阿里云百科分享使用阿里云服务器常用的十大使用场景&#xff0c;说是十大场景实际上用途有很多&#xff0c;阿里云百科分享常见的云服务器使用场景&#xff0c;如本地搭建ChatGPT、个人网站或博客、运维测试、学习Linux、跑Python、小程…

【2023秋招】2023华为od-4.20三道题

2023大厂笔试模拟练习网站&#xff08;含题解&#xff09; www.codefun2000.com 最近我们一直在将收集到的各种大厂笔试的解题思路还原成题目并制作数据&#xff0c;挂载到我们的OJ上&#xff0c;供大家学习交流&#xff0c;体会笔试难度。现已录入200道互联网大厂模拟练习题&…

【刷题之路Ⅱ】LeetCode 622. 设计循环队列

LeetCode 622. 设计循环队列 一、题目描述二、解题1、方案1——数组实现&#xff0c;预留一个空判满1.1、成环思路1.2、初始化接口1.3、入队接口1.4、出队接口1.5、取队头接口1.6、取队尾接口1.7、判空接口1.8、判满接口1.9、释放接口 2、方案2——单向循环链表实现&#xff0c…