环形链表1-2 js 快慢指针

环形链表1:

设置两个指针,
慢指针一次走一步,快指针一次走两步,
如果 fast == null 或者 fast.next == null 不存在环,
如果存在环,两个指针进入环中,是一个追及问题,一定会相遇

var hasCycle = function (head) {if (head == null || head.next == null) {return false}let slow = head;let fast = head;while (fast !== null && fast.next !== null) {slow = slow.nextfast = fast.next.nextif (slow === fast) {return true}}return false
};

环形链表2:
在环形链表1的基础上,先判断是否有环
如果有环,快慢指针相遇时,将快指针指向head,然后每次走一步
当快慢指针再次相遇时,返回这个ListNode


var detectCycle = function (head) {if (head == null || head.next == null) {return null}let slow = head;let fast = head;let isCycle = false;while (fast != null && fast.next != null) {slow = slow.nextfast = fast.next.nextif (slow == fast) {isCycle = truefast = headbreak}}if (!isCycle) {return null} else {while (fast != null && fast.next != null) {if (slow === fast) {return fast}fast = fast.nextslow = slow.next}}
};

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

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

相关文章

CB-LLM 可信大模型,让大模型可解释

CB-LLM 可信大模型,让大模型可解释 提出背景解法拆解目的问题框架图第1步:概念生成第2步:自动概念评分(ACS)第3步:训练概念瓶颈层(CBL)第4步:学习预测器 例子&#xff1a…

图片批量重命名bat,一个脚本快速搞定图片批量重命名

BAT 批处理 是一种在 Microsoft Windows 操作系统中使用的脚本语言,用于自动执行一系列预定义的命令或任务。这些命令集合通常存储在一个文本文件中,文件扩展名为 .bat 或 .cmd。批处理脚本可以包含简单的命令,如文件复制、移动、删除&#x…

单片机中有FLASH为啥还需要EEROM?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「单片机的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!! 一是EEPROM操作简单&…

FPGA设计之跨时钟域(CDC)设计篇(2)----如何科学地设计复位信号?

1、复位是干嘛的? 时钟信号和复位信号应该是一个数字系统最重要和最常用的两个信号了。时钟的重要性大家都懂,没有时钟整个系统就无法同步,自然也就谈不上运行了。那么复位(reset)到底是干嘛的? 所有的数字系统在上电的时候都会进行复位,这样才能确保该系统的初始运行状…

WebRTC API接口教程:实现高效会议的步骤?

WebRTC api接口教程如何使用?WebRTC api接口的功能? WebRTC无需中间服务器即可传输音视频流,为视频会议、在线教育等应用提供了强大的支持。AokSend将详细介绍如何利用WebRTC API接口实现高效会议的步骤。 WebRTC API接口教程:获…

Python 上位机开发

Python 上位机开发 第一节:入门介绍 在这第一节中,我们将对 Python 上位机开发进行一个初步的了解和探索。 首先,什么是上位机?上位机通常是指可以与下位机(如单片机、传感器等硬件设备)进行通信和交互,实现数据采集、控制指令发送以及数据处理和展示的计算机程序。 Pyt…

随着人工智能和机器学习的发展,如何在 C# 中有效地集成深度学习框架,以实现复杂的模型训练和预测功能,并且能够在不同的平台上进行部署和优化?

在C#中集成深度学习框架并实现复杂的模型训练和预测功能可以通过以下步骤进行: 选择适合的深度学习框架:目前在C#中可用的深度学习框架有多种选择,如TensorFlow.NET、CNTK、ML.NET等。根据具体需求选择一个适合的框架。 安装和配置深度学习框…

2024年福州延安中学夏季拿云杯拔尖创新人才素养测试

1、选择题 那么,mn的值是( ) A、1243 B、1343 C、4029 D、4049 2、填空题 一副扑克牌共54张,其中1到13点各有 4张,每个数字黑色红色各两张,还有两张王牌,至少要取出( )…

存储产品选型策略 OSS生命周期管理与运维

最近在看阿里云的 云存储通关实践认证训练营这个课程还是不错的。 存储产品选型策略、对象存储OSS入门、基于对象存储OSS快速搭建网盘、 如何做好权限控制、如何做好数据安全、如何做好数据管理、涉及对象存储OSS的权限控制、使用OSS完成静态网站托管、对OSS中存储的数据进行分…

论项目管理工作中的成本管理(20240528)

论项目管理工作中的成本管理 20240528 随着《“十四五”智能制造发展规划》的发布及其提出的2025发展目标及2035远景规划,国家对智能制造发展的重视程度进一步提升。生产制造企业对于智能制造转型的需求愈加迫切。2023年2月,XX电器制造企业为了解决企业…

C++设计模式---备忘录模式

1、介绍 备忘录模式是一种行为型设计模式,它允许在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后将对象恢复到原先保存的状态。 该模式主要涉及三个角色: (1&#xf…

前端直连小票打印机,前端静默打印,js静默打印解决方案

最近公司开发了一个vue3收银系统,需要使用小票打印机打印小票,但是又不想结账的时候弹出打印预览,找了很多方案,解决不了js打印弹出的打印预览窗口! 没办法,自己写了一个winform版本的静默打印软件&#xf…

面试真题 | 操作系统中断知识

操作系统中断知识 什么是中断?在嵌入式系统中,为什么中断很重要? 参考答案 中断是计算机系统中的一种机制,用于在当前执行的程序或任务被中断处理程序(Interrupt Service Routine,ISR)中断执行时…

【鸿蒙学习笔记】Stage模型

官方文档:Stage模型开发概述 目录标题 Stage模型好处Stage模型概念图ContextAbilityStageUIAbility组件和ExtensionAbility组件WindowStage Stage模型-组件模型Stage模型-进程模型Stage模型-ArkTS线程模型和任务模型关于任务模型,我们先来了解一下什么是…

鸿蒙语言基础类库:【@ohos.util.ArrayList (线性容器ArrayList)】

线性容器ArrayList 说明: 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。开发前请熟悉鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 …

Oracle 确认被锁对象

1. 被锁Session查询 --被锁Session SELECT GV$SESSION.SID, GV$SESSION.SERIAL#,DBA_OBJECTS.OBJECT_NAME,GV$SESSION.OSUSER,GV$SESSION.PROGRAM FROM GV$LOCKED_OBJECT LEFT JOIN DBA_OBJECTS ON GV$LOCKED_OBJECT.OBJECT_ID DBA_OBJECTS.OBJECT_ID LEFT JOIN GV$SESSION …

基于Java中的SSM框架实现疫情冷链追溯系统项目【项目源码+论文说明】

基于Java中的SSM框架实现疫情冷链追溯系统演示 摘要 近几年随着城镇化发展和居民消费水平的不断提升,人们对健康生活方式的追求意识逐渐加强,生鲜食品逐渐受到大众青睐,诸如盒马鲜生、7-fresh等品牌生鲜超市,一时间如雨后春笋般迅…

合合信息大模型加速器重磅上线,释放智能文档全新可能

目录 0 写在前面1 高速文档解析引擎:拓宽大模型认知边界2 文本嵌入模型acge:克服大模型感知缺陷3 行业赋能:以百川智能为例总结 0 写在前面 随着人工智能技术的飞速发展,大模型以强大的数字处理能力和深度学习能力,不…

Canvas:掌握图像变换合成与裁剪状态像素操作

想象一下,用几行代码就能创造出如此逼真的图像和动画,仿佛将艺术与科技完美融合,前端开发的Canvas技术正是这个数字化时代中最具魔力的一环,它不仅仅是网页的一部分,更是一个无限创意的画布,一个让你的想象…