反转链表(JS)

news2024/10/5 14:18:53

反转链表

题目

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

示例 1:

img

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

示例 2:

img

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

示例 3:

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

头插法反转解题思路

定义一个新的链表和一个临时节点,遍历原链表并保存每一个节点的next指针,将该节点加入新链表头指针后的一个节点。循环遍历,原链表的最后一个节点即是新链表的第一个有效值节点。

代码

/**
 * @param {ListNode} head
 * @return {ListNode}
 */
var reverseList = function(head) {
    let p =head;
    let q =new ListNode(0);
    while(p){
        let x=p.next;
        p.next = q.next
        q.next = p;
        p=x;
    }
    return q.next;
};

迭代解题思路

直接改变每一个指针方向,对原链表每一个指针方向进行改变达到反转链表的效果。在遍历链表时,将当前节点的 next 指针改为指向前一个节点。由于节点没有引用其前一个节点,因此必须事先存储其前一个节点。在更改引用之前,还需要存储后一个节点。最后返回新的头引用。

代码

/**
 * @param {ListNode} head
 * @return {ListNode}
 */
var reverseList = function(head) {
    let tail = null;//首先定义一个尾指针,让它从原链表的头开始依次往前,直到原链表的头指针
    let p = head;//定义一个p不改变原链表地址
    while(p){
        let x = p.next;//保存下一个节点位置
        p.next = tail;//将本节点的指针指向tail后位链表(新链表该节点之后的链表)
        tail = p;//赋值tail,使tail添加上本节点形成新的后位链表
        p = x;//移动p指针,遍历原链表
    }
    return tail;
};

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

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

相关文章

809协议

809协议 目录概述需求: 设计思路实现思路分析1.809协议数据流——链路管理类 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,…

【吐槽贴】项目居然因为采购管理失控被迫暂停了?

最近,手上的一个大型项目好不容易解决了进度延误、范围蔓延、质量不过关等难点,结果差点掉进了成本失控的坑里。没想到咱项目经理还要全权负责项目的采购管理,必须要分享出来,让大家避避雷。 先给大家介绍一下背景: 我…

ns3.39编译时报错与解决_包括netanim-3.109(NetAnim)

ns(来源于“network simulator”)是一系列离散事件网络模拟器,包括ns-1、ns-2和ns-3。他们主要应用于研究和教学。ns-3是自由软件,以GNU GPLv2协议分发。​——百度百科 熟悉ns的朋友都知道,使用build.py编译时会先编…

【HttpRunnerManager】搭建接口自动化测试平台实战

目录 一、需要准备的知识点 二、我搭建的环境 三、搭建过程 四、访问链接 五、两个问题点 【整整200集】超超超详细的Python接口自动化测试进阶教程,真实模拟企业项目实战!! 一、需要准备的知识点 1. linux: 安装 python3、nginx 安装和…

ssl证书费用

SSL证书是一种广泛应用于网站的安全协议,可以确保网站上所有传输的数据加密,避免数据的泄露和篡改。因此,许多网站都会申请SSL证书来保护用户数据的安全性。不过,SSL证书的申请会涉及到费用问题,因此需要考虑一些费用方…

真空电子管、晶体管DRAM

文章目录 1. 导读读完这篇文章,你可以回答什么? 2. 起源3. Q1->A14. Q2->A25. Q3->A36. Reference7. 声明 1. 导读 读完这篇文章,你可以回答什么? 什么是真空电子管?真空电子管的基本原理?为什么…

【MIPI协议 D-PHY基础介绍】

MIPI协议 D-PHY基础介绍 前言一、MIPI介绍1.1 D-PHY MIPI 简单介绍1.2 C-PHY MIPI 简单介绍1.3 M-PHY MIPI 简单介绍 二、D-PHY具体介绍2.1 DSI分层结构2.2 D-PHY电气特性介绍2.3 D-PHY 工作模 三、LINE线上的模式3.1 line线上 state code3.2 high speed data line传输3.3 Low …

后端技术趋势指南|如何选择自己的技术方向

编程多条路,条条通罗马 后台大佬 后台路线都是面对后台服务器业务,比如web后台服务器,视频后台服务器,搜索后台服务器,游戏后台服务器,直播后台服务器,社交IM后台服务器等等,大部分…

全球宕机!以色列最大的炼油厂遭遇黑客攻击

以色列最大的炼油厂运营商BAZAN Group的网站遭遇黑客入侵,全球大范围宕机。 BAZAN集团总部位于海法湾,前身为石油精炼厂有限公司,每年原油炼化规模约980万吨,年收入超135亿美元,员工超过1800人。 BAZAN网站被切断网络…

GuLi商城-前端基础Vue

MVVM思想 M:即Model,模型,包括数据和一些基本操作 V:即View,视图,页面渲染结果 VM:即View-Model,模型与视图间的双向操作(无需开发人员干涉) Vue.js - 渐…

每天一个电商API分享:淘宝/天猫关键字搜索店铺列表 API

淘宝/天猫搜索店铺列表 API 是一个强大而灵活的工具,可以帮助开发者在自己的应用中集成淘宝/天猫搜索店铺列表的功能。通过这个 API,开发者可以获取指定关键词下的店铺列表,并根据自己的需求自定义搜索条件。该 API 提供丰富的参数选项&#…

2,认识N(logN)的排序【p3】

认识N( logN} 的排序 2.1归并排序2.1.1代码实现归并排序2.1.1.1自己c实现归并排序2.1.1.2gptc实现归并排序2.1.1.3总结2.1.1.4比较行为 2.1.2归并排序使用master公式2.1.3归并排序的扩展2.1.3.1小和问题2.1.3.2逆序对问题 2.2快排、荷兰国旗问题2.2.1问题一2.2.2问题二(荷兰国旗…

AcWing算法提高课-1.3.16背包问题求方案数

宣传一下算法提高课整理 <— CSDN个人主页&#xff1a;更好的阅读体验 <— 本题链接&#xff08;AcWing&#xff09; 点这里 题目描述 有 N N N 件物品和一个容量是 V V V 的背包。每件物品只能使用一次。 第 i i i 件物品的体积是 v i v_i vi​&#xff0c;价值…

IP 监控软件

IP 监控软件可帮助管理员主动监控网络资源。随着各种设备连接到网络&#xff0c;监控设备和接口可能很复杂&#xff0c;为管理员提供这些设备的IP监控&#xff0c;了解其各种性能指标和问题。 使用有效的 IP 监控软件的优势 使用有效的 IP 监控系统和一套全面的 IP 监控工具&…

华为数通HCIP-IGMP(网络组管理协议)

IGMP&#xff08;网络组管理协议&#xff09; 作用&#xff1a;维护、管理最后一跳路由器以及组播接收者之间的关系&#xff1b; 应用&#xff1a;最后一跳路由器以及组播接收者之间&#xff1b; 原理&#xff1a;当组播接收者需要接收某个组别的流量时&#xff0c;会向最后…

Python自带的命令行调试器pdb介绍

Python自带的命令行调试器pdb介绍 Python自带的命令行调试器是pdb&#xff08;Python Debugger&#xff09;。pdb允许开发者在程序执行过程中进行逐行调试&#xff0c;以便查找和修复代码中的错误。 pdb调试器是Python标准库的一部分&#xff0c;无需额外安装任何软件。直接im…

【Golang 接口自动化08】使用标准库httptest完成HTTP请求的Mock测试

目录 前言 http包的HandleFunc函数 http.Request/http.ResponseWriter httptest 定义被测接口 测试代码 测试执行 总结 资料获取方法 前言 Mock是一个做自动化测试永远绕不过去的话题。本文主要介绍使用标准库net/http/httptest完成HTTP请求的Mock的测试方法。 可能有…

2023年值得推荐的5个数据可视化平台

之前看过一篇介绍20款国外常用的数据可视化工具后&#xff0c;很多朋友在评论区表示国内也有很多很不错的主流数据可视化平台&#xff0c;今天就来给大家介绍国内5个主流的数据可视化平台。 1、阿里云DataV DataV数据可视化是使用可视化应用的方式来分析并展示庞杂数据的产品。…

Windows磁盘清理

针对开发同学&#xff0c;磁盘不够用时&#xff0c;常见的需要清理的内容&#xff1a; 1、虚拟机镜像、Docker镜像等。 通常占用比较大的存储&#xff0c;一个实例从几个G到几十个G。 2、Maven本地仓库。 如果公司有私服&#xff0c;可以全部删掉重新依赖&#xff0c;否则不…

【rtmp】1: FLV videotag 转annexb

【FLV】AVC+AAC的FLV解析过程及pts、dts计算 反复多次,才能熟记细节。 明确细节,遇到问题才能解决。 rtmp 推送flv时, 首先解析flv,flv videotag 转annexb 格式。 然后 按照annexb 输入给rtmp,让rtmp 推送。 而rtmp 推送又需要把annexb 转为avcc 。 annexb 格式文件 录制的…