LeetCode反转链表

题目描述

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

示例 1:

在这里插入图片描述
输入head = [1,2,3,4,5]
输出[5,4,3,2,1]

示例 2:

在这里插入图片描述
输入head = [1,2]
输出[2,1]

示例 3:

输入head = []
输出[]

解题思路

链表反转的核心思想是遍历链表,逐个节点地改变其指向,使得每个节点的next指针指向它的前一个节点,而不是后一个节点。最终,我们将得到一个头尾颠倒的链表。

具体步骤

  1. 初始化三个指针

    • pre:用来指向当前节点的前一个节点,初始时为null
    • cur:用来遍历链表,初始时指向头节点head
    • next:临时存储cur的下一个节点,用于在改变cur.next指针后,不丢失对链表的引用。
  2. 遍历链表

    • 使用一个循环,从head开始,直到curnull(即链表末尾)。
  3. 反转指针

    • 在每次循环中,首先保存cur的下一个节点到next
    • 然后,将cur.next指向pre,实现反转。
    • 接着,将precur向前移动一位,pre变为curcur变为next
  4. 结束循环

    • curnull时,循环结束。此时pre指向原链表的最后一个节点,也就是反转后链表的头节点。

代码

/**
 * Definition for singly-linked list.
 * function ListNode(val) {
 *     this.val = val;
 *     this.next = null;
 * }
 */
/**
 * @param {ListNode} head
 * @return {ListNode}
 */
var reverseList = function(head) {
    let pre = null;  //当前节点的前一个节点
    let cur = head;  //当前节点,初始时指向头节点head
    while(cur != null){
        let next = cur.next;
        cur.next = pre;
        pre = cur;
        cur = next;
    }
    return pre;
};

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

011:软件卸载工具TotalUninstall安装教程

摘要:本文详细介绍软件卸载工具TotalUninstall安装流程。 一、软件介绍 TotalUninstall是一款功能强大的卸载与清理工具,它能够彻底卸载不需要的应用程序,并清除相关的注册表项、文件残留和临时文件,确保系统干净无残留&#xff…

美畅物联丨视频上云网关如何配置上级联网云平台

在当今的智慧交通与安防监控体系中,视频上云网关发挥着至关重要的作用。以美畅视频上云网关为例,具备强大的兼容性,能够对接来自不同厂家、不同型号的视频设备,将这些设备输出的各异视频流进行汇聚整合。在获取摄像机视频流后&…

深入理解JavaScript:两大编程思想和ES6类以及对象概念解析

文章目录 两大编程思想ES6中的类和对象 两大编程思想 面向过程 (Procedural-Oriented Programming,POP) 定义:面向过程的编程是一种基于过程调用的编程范式,它将程序看作是一系列函数或过程的集合。每个函数负责完成…

推荐一个好用的VSCode插件

还在花馒头使用 Copilot?别再做大冤种啦! 现在有个更好用的AI编程助手--豆包 MarsCode!它不仅完全免费,而且功能强大,让你在编程时得心应手!再也不用担心高昂的订阅费用,省下来的馒头&#xff…

衡石分析平台系统分析人员手册-图表查询应用

查询应用​ 在业务分析过程中,查询明细数据有时需要满足如下场景: 在自助化的操作界面中用户可以自主选择查询字段及相应的筛选条件进行查询。用户通过简单的鼠标点击能够快速获得所需数据,并提供聚合计算等高级功能。 上述场景可以通过查…

数据结构与算法-21算法专项(中文分词)(END)

中文分词 搜索引擎是如何理解我们的搜索语句的? mysql中使用 【like “%中国%”】,这样的使用方案 缺点1:mysql索引会失效缺点2:不能模糊,比如我搜湖南省 就搜不到湖南相关的 1 trie树 Trie树,又称前缀树…

C++ 中的可调用对象

目录 一.可调用对象简介 1.什么是可调用对象? 2.可调用对象有什么用? 二.函数指针和仿函数 1.函数指针 a.函数指针的使用语法 b.函数指针的应用场景 2.仿函数 a.仿函数的基本概念 b.仿函数的优点 三.lambda表达式和function 1.lambda表达式 …

完全了解一个asp.net core MVC项目模板

当我们使用Visual Studio 2022去新建一个基于asp.net core Web项目的时候,一般有三种选择,一种是空项目,一种是基于MVC的项目、再有一种就是基于包含Razor Pages实例的web应用。如下图: 今天,我们打算选择基于MVC模…

《MYSQL 实战45讲》 慢查询产生的原因

一.查询长时间不返回的原因 首先要执行下show processlist来查看各个线程的状态(是否在等待锁) 1.DML写锁导致其他线程对改表的读取被阻塞 当一个线程正在持有t表的DML写锁时,其他线程查询语句就会被阻塞,一直等到DML写锁释放才…

RWA“两链一桥”平台在香港金融科技周亮相

第九届香港金融科技周今日开幕,记者在主题为Trust Bridge的论坛上获悉,蚂蚁数科旗下蚂蚁链在此次金融科技周首次公开了其为RWA业务打造的“两链一桥”平台,旨在帮助更多内地新能源资产赴港RWA,实现技术赋能实体资产。 “两链一桥“…

MySQL8 安装配置及卸载教程

MySQL8 安装配置及卸载教程 0 卸载 MySQL 如果之前没安过 MySQL ,或者卸载干净了不用看这个。 如果安装中出现以下问题,有可能是为之前安装 MySQL 不成功,有残留的安装程序等文件程序或者是卸载 MySQL 不成功。 0.1 停止服务 首先进入服务…

LabVIEW航空发动机测试系统

随着航空工业的快速发展,发动机性能的测试与优化成为确保航空安全的关键任务。针对日益复杂的性能需求,开发了一套基于LabVIEW的航空发动机测试系统,能够进行精确的性能评估与实时数据分析。系统将软件与硬件深度结合,实现了自动化…

容联云容犀Copilot&Agent荣获「2024中国大模型应用之星」

近日,2024中国智能应用发展大会于北京举行,容联云凭借大模型应用——容犀Copilot&Agent在大模型应用领域的卓越表现和标杆案例,荣获“2024中国大模型应用之星奖”。 中国软件网CEO、海比研究院院长曹开彬在开场致辞中明确指出&…

建筑行业知识管理:构建高效文档管理系统,提升项目协作与管控能力

各行各业都在经历数字化转型,建筑行业也不例外,正经历着前所未有的变革。随着工程项目规模的扩大和复杂性的增加,传统的管理方式已难以满足高效协作和精准管控的需求。因此,构建一个高效的在线AI知识库管理系统,成为提…

【STM32】SD卡

(一)常用卡的认识 在学习这个内容之前,作为生活小白的我对于SD卡、TF卡、SIM卡毫无了解,晕头转向。 SD卡:Secure Digital Card的英文缩写,直译就是“安全数字卡”。一般用于大一些的电子设备比如:电脑、数码相机、AV…

【视频】Camera结构详解

1、爆炸图 先看几张爆炸图: lens:镜头 VCM:音圈马达 Voice coil motor Mount :固定座 IR Filter:滤光片 Sensor:感光传感器(图像传感器) Substrate:基板 FPC:柔性印制电路板 2、镜头 镜头是仅次于Sensor芯片影响画质的第二要素,其组成是透镜结构,由几片透镜组…

使用微信免费的内容安全识别接口,UGC场景开发检测违规内容功能

大家好,我是小悟。 内容安全识别主要针对的是有UGC即用户生成内容的功能场景,通过结合内容安全的审核能力,应对文本、图片、音频内容类型下的敏感内容识别、涉黄内容识别、暴恐内容识别、辱骂内容识别等违规问题,可以提高审核效率…

UE5 射线折射

这个判断是否有标签是需要带有此标签的Actor来反射

【PnP】详细公式推导,使用DLT直接线性变换法求解相机外参

文章目录 🚀PnP1️⃣ 求解不考虑尺度的解2️⃣ 恢复解的尺度 🚀PnP PnP(Perspective-n-Point)是求解3D到2D点相机外参的算法。PnP算法有DLT直接线性变换、P3P三对点估计位姿、EPnP(Efficient PnP)、BA(Bundle Adjustment)光速法平差。这里主要讲解DLT。…

二十四、Python基础语法(变量进阶)

一、引用 在定义变量的时候, 解释器会给变量和数据分别在内存中分配内存,变量中保存的是数据的地址, 称为引用,Python 中数据的传递,传递的都是引用,可以使用 id(变量) 函数,获取变量中引用地址。 # 将数字1在内存中的地址储存到变量a中 a …