【leetcode】力扣热门之反转链表【简单难度】

题目描述

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

用例

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

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

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

提示

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

示例代码

解法1:直接反转法

var reverseList = function(head) {
    let prev=null;
    let curr=head;
    while(curr){
        const next=curr.next;
        curr.next=prev;
        prev=curr;
        curr=next;
    }
    return prev;
};

解法2:定义反转

/**
 * Definition for singly-linked list.
 * function ListNode(val, next) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.next = (next===undefined ? null : next)
 * }
 */
/**
 * @param {ListNode} head
 * @return {ListNode}
 */
var reverseList = function(head) {
    let ans=null;
    for(let x=head;x!=null;x=x.next){
        ans=new ListNode(x.val,ans);
    }
    return ans;
};

解法3: 栈实现:

/**
 * @param {ListNode} head
 * @return {ListNode}
 */
var reverseList = function(head) {
    let stack=[]
    while(head){
        stack.push(head);
        head=head.next;
    }
    let rootNode=new ListNode()
    let temp=rootNode;
    while(stack.length>0){
        temp.next=stack.pop();
        temp=temp.next;
    }
    temp.next=null;
    return rootNode.next;
};

执行情况:
在这里插入图片描述

Tip

简单题适合用来打基础,掌握基础数据结构的使用可以为复杂题目求解提供方便。

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

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

相关文章

海康威视摄像头+服务器+录像机配置校园围墙安全侦测区域入侵侦测+越界侦测

一、适用场景 1、校园内&#xff0c;防止课外时间翻越围墙到校外、从校外翻越围墙到校内&#xff1b; 2、通过服务器摄像头的侦测功能及时抓图保存&#xff0c;为不安全因素提供数字化依据&#xff1b; 3、网络录像机保存监控视频&#xff0c;服务器保存抓拍到的入侵与越界&am…

目标检测COCO数据集与评价体系mAP

1.mAP 2.IoU IoU也就是交并比&#xff0c;也称为 Jaccard 指数&#xff0c;用于计算真实边界框与预测边界框之间的重叠程度。它是真值框与预测边界框的交集和并集之间的比值。Ground Truth边界框是测试集中手工标记的边界框&#xff0c;用于指定目标图像的位置以及预测的边界框…

【AI视野·今日NLP 自然语言处理论文速览 第六十九期】Wed, 3 Jan 2024

AI视野今日CS.NLP 自然语言处理论文速览 Wed, 3 Jan 2024 Totally 24 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers An Autoregressive Text-to-Graph Framework for Joint Entity and Relation Extraction Authors Zaratiana Ur…

鸿蒙系列--组件介绍之Video

接口 Video(value: {src?: string | Resource, currentProgressRate?: number | string |PlaybackSpeed, previewUri?: string |PixelMap | Resource, controller?: VideoController}) 参数&#xff1a; src&#xff1a;视频播放源的路径。支持本地路径和网络路径currentP…

网络安全保险发展起始阶段的挑战及应对措施

文章目录 前言一、网络安全保险的有序发展二、当前我国网络安全保险发展的初期态势&#xff08;一&#xff09;网络安全风险类型&#xff08;二&#xff09;网络安全保险的作用&#xff08;三&#xff09;与外国网络安全保费的规模对比 三、我国网络安全保险发展初期面临的挑战…

MYSQL双主节点–更换ip

MYSQL双主节点–更换ip 一、更换双主节点ip 1.停止mysql服务 #安装了supervisor supervisorctl stop mysql #未安装 systemctl stop mysqld2.修改网卡配置信息 注&#xff1a;ens33是网卡名称&#xff0c;可能网卡不叫ens33 vi /etc/sysconfig/network-scripts/ifcfg-ens333…

ConcurrentHashMap的原理分析学习

ConcurrentHashMap 的初步使用及场景 CHM 的使用 ConcurrentHashMap 是 J.U.C 包里面提供的一个线程安全并且高效的 HashMap&#xff0c;所以ConcurrentHashMap 在并发编程的场景中使用的频率比较高&#xff0c;那么这一节课我们就从ConcurrentHashMap 的使用上以及源码层面来…

亚马逊鲲鹏系统:点赞提升评论排名的得力助手

作为一个卖家&#xff0c;我深知在亚马逊和其他电商平台上&#xff0c;用户评论对商品销售的重要性。在这个竞争激烈的市场中&#xff0c;点赞已经成为提升评论排名、吸引更多顾客的有效手段之一。在我经营店铺的过程中&#xff0c;亚马逊鲲鹏系统给予了我巨大的帮助&#xff0…

msckf-vio 跑Euroc数据集,并用evo进行评估

所需材料&#xff1a; Euroc数据集主页&#xff1a;https://projects.asl.ethz.ch/datasets/doku.php?idkmavvisualinertialdatasetsevo评估工具代码&#xff1a;https://github.com/MichaelGrupp/evo向msckf-vio中添加保存位姿的代码&#xff0c;可参考https://blog.csdn.ne…

SpringBoot整合Activiti7——终止结束事件(十三)

文章目录 终止结束事件终止结束事件代码实现xml文件测试流程流程执行步骤 终止结束事件 终止结束事件 主要是对流程进行终止的事件&#xff0c;可以在一个复杂的流程中&#xff0c;如果某方想要提前中断这个流程&#xff0c;可以采用这个事件来处理。terminateAll属性&#xf…

mysql服务多实例运行

1、官网下载mysql安装包 https://downloads.mysql.com/archives/community/ 2、解压安装包 tar -zxvf mysql-8.1.0-linux-glibc2.28-aarch64.tar.xz -C /usr/localmv /usr/local/mysql-8.1.0-linux-glibc2.28-aarch64 /usr/local/mysql 3、创建mysql用户组 groupadd…

某月瓜网站js盾动态调试方案

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;若有侵权&#xff0c;请添加&#xff08;wx&#xff1a;wyqlxl99&#xff09;联系删除 本文章同步微…

express框架

目录 一、express介绍二、express 使用2.1 express下载2.2 express初体验 三、express 路由3.1 路由的使用3.2 获取参数3.3 获取路由参数 四、express响应设置五、express中间件5.1 什么是中间件5.2 中间件的作用5.3 中间件的类型5.3.1 定义全局中间件5.3.2 多个全局中间件5.3.…

一种创新的白细胞检测方法:多级特征融合与变形自注意力DETR(MFDS-DETR)

论文&#xff1a;https://arxiv.org/abs/2401.00926 引言 在标准的医院血液检查中&#xff0c;传统的流程需要医生通过显微镜手动从患者的血液显微图像中分离白细胞&#xff0c;然后通过自动白细胞分类器对分离的白细胞进行分类&#xff0c;以确定血样中不同类型白细胞的数量…

ooTD I 撞色插肩长T真的怎么搭都好看

这款撞色插肩长T真的很难不爱 三种色调&#xff0c;每种撞色都清新自然 青春活力感十足&#xff0c;真的很好看 它用的是32S紧密双纱绒面料 手感细腻柔软&#xff0c;有弹力上身也很舒适 衣服上的印花图案精致又可爱 小朋友穿简直不要太好看 撞色插肩的设计又有弱化肩部…

【REST2SQL】04 REST2SQL第一版Oracle版实现

【REST2SQL】01RDB关系型数据库REST初设计 【REST2SQL】02 GO连接Oracle数据库 【REST2SQL】03 GO读取JSON文件 REST2SQL的第一个版本&#xff0c;只支持Oracle数据库&#xff0c;以后会逐步加入其它数据看的支持。 项目文件组织如下&#xff1a; 1 REST2SQL为项目主目录 …

005-Zynq基操之如何去玩EMIO接口(走过路过千万不要错过)

文章目录 前言一、EMIO是啥含义二、两种EMIO的使用1.PS端外设引出来的EMIO2.正常的EMIO口3.PS端驱动源码 总结 前言 今天分享这个主要原因是&#xff0c;把最基础的EMIO接口弄清楚咋操作的&#xff0c;咱们就可以做一些由PS端控制PL端的器件小功能&#xff0c;最常见的就是我们…

SqueezeNet:通过紧凑架构彻底改变深度学习

一、介绍 在深度学习领域&#xff0c;对效率和性能的追求往往会带来创新的架构。SqueezeNet 是神经网络设计的一项突破&#xff0c;体现了这种追求。本文深入研究了 SqueezeNet 的复杂性&#xff0c;探讨其独特的架构、设计背后的基本原理、应用及其对深度学习领域的影响。 在创…

vue项目中的录屏插件recordrtc且带声音

vue项目中的录屏插件recordrtc且带声音 一、效果图二、安装插件三、直接上代码 一、效果图 其中窗口录屏不带声音&#xff0c;chrome标签和整个屏幕的录屏是带声音的 二、安装插件 npm i recordrtc 三、直接上代码 <template><div class"record-page">…

Qt优秀开源项目之二十:RedPanda-CPP(小熊猫C++)

小熊猫C是跨平台、轻量易用的开源C/C集成开发环境。 官网&#xff1a;http://royqh.net/redpandacpp github&#xff1a;https://github.com/royqh1979/RedPanda-CPP 小熊猫C&#xff08;原名小熊猫Dev-C 7)是基于Qt开发的Dev-C替代版本。和经典的Dev-C 5.11、新的Embarcadero …