leetcode刷题日记:141. Linked List Cycle(环形链表)

这一题是给我们一个链表让我们判断这是否是一个环形链表,我们知道如果一个链表中有环的话这一个链表是没有办法访问到尾的,
假若有如图所示的带环链表:
在这里插入图片描述
我们从图示中很容易看出来这一个链表在访问的时候会在里面转圈,我们再来看看无环链表的访问是什么样的,
在这里插入图片描述
我们可以清楚的看到,这一个无环链表在访问的时候会访问到尾,最后指针为NULL,此时说明链表无环。但是还是无法区别这两种链表啊,因为假如链表够长,我怎么知道它是因为链表有环导致没有访问完,还是因为链表太长没有访问完,所以根据链表经过的节点数目是无法判断这是一个有环链表还是无环链表。
但是我们一想有环链表啥特性,是不是访问结点时会重复,既然一个指针访问链表时无法判断是不是重复访问了,那么我们用两个指针去看会不会重复访问结点不就行了,就像我们跑步一样,在环形跑道上只要两个人的速度不一样这两个人就会相遇,这两个指针也是这样只要两个指针的速度不一样,在环上就会相遇。如果链表无环,跑的快的指针会先一步到达链表的尾端,这样就可以判断这是一个无环链,综上,使用两个遍历速度不一样的指针可以判断出一个链表是否为有环链表。
就像钟表上的时针与分针会相遇一样,这两个速度不一样的指针也会相遇。
根据上面的思路我们可以写出如下代码:

bool hasCycle(struct ListNode *head) {struct ListNode *p=head, *q = head;if(p!=NULL){p = p->next;}while(p!=q&&p!=NULL&&q!=NULL){p=p->next;if(p!=NULL){p=p->next;}q=q->next;}if(p==NULL){return false;}return true;
}

运行结果截图:
在这里插入图片描述

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

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

相关文章

sklearn 笔记 BallTree/KD Tree

由NearestNeighbors类包装 1 主要使用方法 sklearn.neighbors.BallTree(X, leaf_size40, metricminkowski, **kwargs) X数据集中的点数leaf_size改变 leaf_size 不会影响查询的结果,但可以显著影响查询的速度和构建树所需的内存metric用于距离计算的度量。默认为…

stable diffusion comfyui的api使用教程

一、为什么要使用comfyui的api?对比webui的api,它有什么好处? 1、自带队列 2、支持websocket 3、无需关心插件是否有开放api接口,只要插件在浏览器中可以正常使用,接口就一定可以使用 4、开发人员只需关心绘图流程的搭建 5、切换…

【数据结构】快速排序算法你会写几种?

👦个人主页:Weraphael ✍🏻作者简介:目前正在学习c和算法 ✈️专栏:数据结构 🐋 希望大家多多支持,咱一起进步!😁 如果文章有啥瑕疵 希望大佬指点一二 如果文章对你有帮助…

Stable Diffusion 是否使用 GPU?

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 3D数字孪生场景编辑器 Stable Diffusion 已迅速成为最流行的生成式 AI 工具之一,用于通过文本到图像扩散模型创建图像。但是,它需…

Linux基本指令及周边(第一弹)

文章目录 前言mkdir指令(重要):tree指令rmdir指令 && rm 指令(重要):touch指令ls指令pwd指令cd 指令用户家目录man指令(重要):mv指令(重要)cat指令绝…

vue2+elementUI 仿照SPC开发CPK分析工具

源码地址请访问 Vue CPK分析工具页面设计源码(支持左右可拖拽和表格可编辑、复制粘贴)仿照SPC开发-CSDN博客

序列化、反序列化和反射会破坏单例模式

反射和序列化操作都可能破坏单例模式的实现。 使用反射可以访问类的私有构造函数并强制创建一个新的实例,这将破坏单例模式的唯一性原则,因为它允许创建多个实例。为防止这种情况发生,可以通过在单例类的构造函数中添加防止多次实例化的检查…

Python---列表 集合 字典 推导式(本文以 字典 为主)

推导式: 推导式comprehensions(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列(一个有规律的列表或控制一个有规律列表)的结构体。 共有三种推导:列表…

TDengine 跨版本迁移实战

TDengine 3.0 已经退出了近一年,目前已经到了 3.2 版本。很遗憾的是 2.x 和 3.x 之间的数据文件不兼容。 如果向从 2.x 升级到 3.x 只能选择数据迁移的方式。 目前数据迁移有三种方法: 使用官方推荐工具 taosx。使用 taosdump 工具。自己写程序。 迁移…

DevOps系列---【jenkinsfile使用sshpass发送到另一台服务器】

1.首先在宿主机安装sshpass 2.把物理机的sshpass复制到容器中 which sshpass cp $(which sshpass) /usr/local/app/ docker cp sshpass 容器id:/usr/local/bin/sshpass 3.在jenkinsfile中添加 #在stages中添加stage stage(部署TEST服务){steps{sh "sshpass -p root1234 sc…

【Azure 架构师学习笔记】-Azure Storage Account(6)- File Layer

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Storage Account】系列。 接上文 【Azure 架构师学习笔记】-Azure Storage Account(5)- Data Lake layers 前言 上一文介绍了存储帐户的概述,还有container的一些配置,在…

ubuntu云服务器配置SFTP服务

目录 一、安装并运行SSH服务 1,安装ssh服务 2,运行ssh 3,查看ssh运行状态 二、创建SFTP用户并进行用户相关的配置 1,创建SFTP用户 2,限制用户只能使用 SFTP,并禁止 SSH 登录。打开/ect/ssh/sshd_conf…

Android 中字符串空格占位

Android 中字符串空格占位 在布局文件XML中的占位符(分号是占位符的一部分) 普通的英文半角空格   no-breakspace(普通的英文半角空格但不换行) 中文全角空格(一个中文宽度)   en空格(半个中文宽度)   em…

E签宝面试题

文章目录 1.自我介绍2.静态方法和普通方法的区别?3.了解bio/nio/aio吗?4.Spring中创建Bean的方法?4.1 通过Spring XML实现4.2 通过注解实现5.讲讲集合类?6.说说ThreadLocal?7.Redis淘汰策略有哪些?8.说下对JVM的了解?9.详细说下堆区?10.Nacos中有一个服务挂了再调用它会…

ElasticSearch6.8.1 常见错误

1.vm.max_map_count max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 1.1 修改 /etc/sysctl.conf 只添加最后vm值即可,sysctl -p /etc/sysctl.conf net.ipv4.conf.all.accept_redirects0 net.ipv4.tcp_tw_reuse1 n…

ChatGPT被曝测试新功能:学习所有历史聊天,还能重置记忆、“阅后即焚”

丰色 发自 凹非寺 量子位|公众号QbitAI ChatGPT可能要上新一项重大功能了。 那就是记住你之前的聊天内容并不断从中学习(并非单纯保存历史记录),从而了解你的偏好和信息,用于在日后聊天派上用场。 比如你可以给它下达一句“始终…

Django——模板层、模型层

模板层 一. 模版语法 {{ }}: 变量相关 {% %}: 逻辑相关 1. 注释是代码的母亲 {# ... #} 2. 基本数据类型传值 int1 123 float1 11.11 str1 我也想奔现 bool1 True list1 [小红, 姗姗, 花花, 茹茹] tuple1 (111, 222, 333, 444) dict1 {username: jason, age: 18, i…

3.5 Windows驱动开发:应用层与内核层内存映射

在上一篇博文《内核通过PEB得到进程参数》中我们通过使用KeStackAttachProcess附加进程的方式得到了该进程的PEB结构信息,本篇文章同样需要使用进程附加功能,但这次我们将实现一个更加有趣的功能,在某些情况下应用层与内核层需要共享一片内存…

基于 Amazon EKS 搭建开源向量数据库 Milvus

一、前言 生成式 AI(Generative AI)的火爆引发了广泛的关注,也彻底点燃了向量数据库(Vector Database)市场,众多的向量数据库产品开始真正出圈,走进大众的视野。 根据 IDC 的预测,…

photoshop插件开发入门

photoshop 学习资料和sdk 下载地址https://developer.adobe.com/console/servicesandapis/ps 脚本编程文档 官方文档: https://extendscript.docsforadobe.dev/ 官方文档: https://helpx.adobe.com/hk_en/photoshop/using/scripting.html open(new F…