LeetCode 141. [Python]环形链表 给定一个链表,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。_给定一个链表,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next-程序员宅基地

技术标签: 算法  链表  leetcode  指针  数据结构  

LeetCode 141. 环形链表

给定一个链表,判断链表中是否有环。

如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。

如果链表中存在环,则返回 true 。 否则,返回 false 。

# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

Code

def hasCycle(self, head: ListNode) -> bool:
    if not head or not head.next:#节点大于等于2
       return False
    
    slow = head#慢指针
    fast = head.next#快指针

    while fast is not None and fast.next is not None:
        slow = slow.next
        fast = fast.next.next
        if slow==fast:#如果追上的话
            return True
    
    return False

想法

如果在移动的过程中,快指针反过来追上慢指针,就说明该链表为环形链表。

Code2

def hasCycle(self, head: ListNode) -> bool:
    seen = set()#哈希表
    while head is not None and head.next is not None:#遍历完链表
        if head in seen:
            return True
        seen.add(head)
        head = head.next
    return False

想法2

遍历所有节点,每次遍历到一个节点时,判断该节点此前是否被访问过。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/vvv__vvv/article/details/110822625

智能推荐

【深入vue3 之 directive 指令的使用与讲解】_vue3 directive-程序员宅基地

文章浏览阅读2w次,点赞10次,收藏38次。自定义全局指令:实例app.directive()参数:{string} name{Function | Object} [definition]返回值:如果传入 definition 参数,则返回应用实例。如果不传入 definition 参数,则返回指令定义。用法:注册或检索全局指令。自定义指令概念:在 Vue 中,代码复用和抽象的主要形式是组件。然而,有的情况下,你仍然需要对普通 DOM 元素进行底层操作,这时候就会用到自定义指令。自定义指令是vue提供给我们用原生DOM封装一系_vue3 directive

完美优化Github访问缓慢问题_winxraygithub-程序员宅基地

文章浏览阅读2.2w次,点赞26次,收藏51次。一、国内访问 GitHub 为什么很慢?  GitHub的CDN域名遭到DNS污染,导致无法连接使用 GitHub 的加速分发服务器,才使得国内访问速度很慢。二、如何解决 DNS 污染?  通过修改 Hosts 文件,将域名解析直接指向 IP 地址来绕过 DNS 的解析,以此解决污染问题。.三、具体步骤1、获取Github的ip地址  通过访问 https://www.ipaddres..._winxraygithub

eclipse卸载插件小记_eclipse卸载sonar插件-程序员宅基地

文章浏览阅读1.7k次。eclipse用久了,上面好多插件,android、C++、python什么的好多,每次加载都费时,所以只能卸载了,需要时再装,记录下过程:1、【Help】->【Install New Software...】,打开安装插件页面;2、打开已安装插件:选择要卸载的插件,【Uninstall...】即可,重启eclipse生效。_eclipse卸载sonar插件

前端-html、css-程序员宅基地

文章浏览阅读122次。HTML一、html简介超级文本标记语言是标准通用标记语言下的一个应用,也是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容(如:文字如何处理,画面如何安排,图片如何显示等)。浏览器按顺序阅读网页文件,然后根据标记符解释和显示其标记的内容,对书写出错的标记将不指出其错误,且不停止其解释执行过程..._.div标签通常需要与css一同使用,用于对大的内容块设置样式属性( )

图像分类-KNN_knn图像分类-程序员宅基地

文章浏览阅读4.8k次,点赞6次,收藏27次。KNN算法原理及实践,py38代码附上github地址_knn图像分类

python numpy大数组时出现MemoryError的解决方法_numpy.core._exceptions._arraymemoryerror: unable t-程序员宅基地

文章浏览阅读2.4w次。python numpy大数组时出现MemoryError的解决方法PC有16GB内存,但只用了5GB·python就报MemoryError,很是疑惑。·google后发现下面文章。才意识到是由于我安装了Anacoda的32位版本,卸载32位->安装64位版本后问题解决。https://blog.csdn.net/weixin_39750084/article/details/815..._numpy.core._exceptions._arraymemoryerror: unable to allocate 256. kib for an

随便推点

【图分析】图算法,社团发现算法-程序员宅基地

文章浏览阅读1.1k次。目录社团发现算法介绍数据导入三角形计数和聚类系数局部聚类系数全局聚类系数三角形计数和聚类系数的用法Neo4j实现三角形计数Neo4j计算局部聚类系数强连通分量算法强连通分量算法Neo4j实现强连通分量算法连通分量算法Neo4j实现连通分量算法标签传播算法半监督学习和种子标签使用Neo4j实现标签传播算法Louvain模块度算法社团发现算法介绍(1)面向整体关系稠密度的三角形计数和聚类系数。(2)用于发现连通族的强连通分量算法和连通分量算法。(3)标签传播算法,可基于节点标签快速推断群组。(4)Lo_社团发现算法

Allan方差:标准allan方差求取和重叠(Overlaping)方差求取 & 如何计算各个参数值!-程序员宅基地

文章浏览阅读1.6w次,点赞36次,收藏188次。1、标准allan方差计算法2、重叠方差计算法_allan方差

软件测试基础知识(大全)_软件测试基础知识大全-程序员宅基地

文章浏览阅读726次。1、什么是兼容性测试?兼容性测试侧重哪些方面?参考答案:兼容测试主要是检查软件在不同的硬件平台、软件平台上是否可以正常的运行,即是通常说的软件的可移植性。兼容的类型,如果细分的话,有平台的兼容,网络兼容,数据库兼容,以及数据格式的兼容。兼容测试的重点是,对兼容环境的分析。通常,是在运行软件的环境不是很确定的情况下,才需要做兼容。根据软件运行的需要,或者根据需求文档,一般都能够得出用户会在什..._软件测试基础知识大全

Junit测试用例按顺序执行_junit test执行顺序-程序员宅基地

文章浏览阅读1.2w次,点赞2次,收藏6次。Junit测试案例执行按顺序执行有3种方法可以实现,缺省地,testcase执行的时候不是按函数编写顺序执行的。1、数字编码法testcase的函数名尾数为数字,则方法会按字母顺序、数字顺序执行。比如有testFirst1, testFirst2, testFirst3三个测试案例,则三个案例的执行顺序为:testFirst1>testFirst2>testFirst3如果还有三个_junit test执行顺序

IOException : DerInputStream.getLength(): lengthTag=26, too big.-程序员宅基地

文章浏览阅读5.8k次。出现这个错误是我在开发手机网站支付的时候出现的,由于之前的支付功能是即时到账,后来改为了手机网站支付宝。主要是由没有将AlipaySubmit中的buildRequestMysign方法中的RSA.sign(prestr, AlipayConfig.private_key, AlipayConfig.input_charset);中的private_key没有由原先的商户的私钥改为手机网站支付_ioexception : derinputstream.getlength(): lengthtag=26, too big.

flink 异常记录_flink no root exception-程序员宅基地

文章浏览阅读193次。1:java.lang.NoSuchMethodError: scala.Product.initinitinit(Lscala/Product;)V设置对应的scala版本解答:jar包引用和运行时的scala版本不同,如果在开发过程遇到修改了环境配置还有这个问题,应该关闭所有idea窗口再打开才能生效。..._flink no root exception

推荐文章

热门文章

相关标签