class ListNode:def __init__(self, val):self.val = valself.next = None# 借助辅助空间
# class Solution:
#     def hasCycle(self, head: ListNode) -> bool:
#         a = set()
#         while head:
#             if head in a:
#                 return True
#             a.add(head)
#             head = head.next
#         return False# 快慢指针法
class Solution:def hasCycle(self,head:ListNode) -> bool:slow = fast = headwhile fast and fast.next: ##保证fast和fast.next有值 不然fast.next.next会报错slow = slow.nextfast = fast.next.nextif slow is fast:return Truereturn Falseif __name__ == '__main__':ln1 = ListNode(1)ln2 = ListNode(2)ln1.next = ln2ln2.next = ln1r = Solution().hasCycle(ln1)print(r)

参考了 leetcode 上的答案

快慢指针为啥在有环的链表中为啥一定会相遇
因为快慢指针的差距不管有多少 他们速度不同在环形结构上会逐渐缩小一步直到相遇
详见https://blog.csdn.net/Leslie5205912/article/details/89386769

算法 - python - 判断链表是否有环相关推荐

  1. 【刷算法】判断链表是否有环以及返回入环节点

    题目描述 判断一个单链表是否有环,有环则返回入环节点,否则返回null 1->2->3->4->5->6↑ ↓8<-7 复制代码 例如上面这个链表就有环,入环节点是 ...

  2. 算法练习——判断链表是否有环 leetcode.141 python

    题目描述: 给你一个链表的头节点 head ,判断链表中是否有环. 如果链表中存在环 ,则返回 true . 否则,返回 false . 方法一:hash表 hashset是一种特殊的hashmap, ...

  3. python判断链表是否有环_判断链表是否有环

    判断一个单向链表是否有环.(指向表头结点的指针为head) 方法一: (1)用两个指针p1和p2分别指向表头结点,即p1=p2=head (2)p1和p2分别采用1和2作为步长遍历该链表.(注意,p2 ...

  4. php判断单向链表中有没有环,python判断链表是否有环的实例代码

    先看下实例代码: class Node: def __init__(self,value=None): self.value = value self.next = None class LinkLi ...

  5. 双指针算法之快慢指针(一):力扣【判断链表是否有环】leetcode-141、142

    一.简介:什么是快慢指针? 快慢指针,顾名思义,无非就是设置一个快指针,一个慢指针,初始化的时候,快指针和慢指针都指向链表的头结点,前进的时候一个在前一个在后,结合起来可以十分巧妙的解决链表中的一些问 ...

  6. 数据结构---判断链表是否有环

    判断链表是否有环 判断链表是否有环 方法1 方法2 JAVA实现 问题扩展1 问题扩展2 判断链表是否有环 有一个单向链表,链表中有可能出现"环",就像下图这样.那么,如何用程序来 ...

  7. C程序:如何判断链表是否有环

    C程序:如何判断链表是否有环 这是个常见的面试题哦,总之我面试的时候遇到过, 当时没有答上来,回去后想出来下面的方法一,该法还有个附加优点,可以判断出链表在哪个地方形成环的(即如果想拆开这个环,从哪个 ...

  8. 使用快慢指针判断链表是否有环

    有时候在面试中可能会遇到叫我们判断链表中是否有环的问题,这个问题的解决方法也很多,这里我记录一下比较简单的使用快慢指针的方法: 使用快慢指针是指: 设置两个指针,一快一慢,快指的是每次移动两步,慢指针 ...

  9. 判断链表是否存在环(及其延伸)

    有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环. 问题: 1.如何判断一个链表是不是这类链表? 2.如果链表为存在环,如果找到环的入口点 ...

最新文章

  1. 浅析网站开发的未来前景如何?
  2. c++面向对象三大特征封装、继承和多态知识总结
  3. TensorFlow学习笔记(十七)tf.nn.conv2d
  4. 宝塔常用的命令大全(直接上官网)
  5. 如何利用脚本方法清除文本框中汉字,从而保留英文字母和数字等
  6. webp转换gif_用 WebP 创建尺寸更小、细节更丰富的图片,以此来提高网站的速度...
  7. 如何在linux mysql_如何在linux下安装mysql
  8. 人脸对齐(十九)--Regressing a 3D Face Shape from a Single Image
  9. Linkage 使用方法总结
  10. c# mysql清理_C# 中清空sql数据库中的数据
  11. 这一本《电子工程师技术手册》,你要不要?
  12. Jquery实现确定取消对话框
  13. Python系列9——类和对象(3)
  14. windows10无法使用内置管理员账户打开应用
  15. 科技大佬对人工智能的看法
  16. [解决方案]罗技POWERPLAY鼠标垫无法连接G703/G903/G403等鼠标
  17. 想学3dmax应该怎么学?
  18. SET TIMING ON
  19. RabbitMQ的持久化
  20. 17 内存规整(memory compaction)

热门文章

  1. 数据库设计准则(第一、第二、第三范式说明)
  2. android 系统gpu 调试_[RK3288][Android6.0] 调试笔记 --- 读取当前DDR和GPU频率方法
  3. 字符串对象转数组对象_js对象转数组的方法 js怎么将数组对象转变成字符串
  4. 好用的 php类,一个好用的php文件上传处理类
  5. gzencode php demo,8个必备的PHP功能实例代码
  6. html语言表格背景颜色,HTML_HTML表格标记教程(36):表头的背景色属性BGCOLOR,TH标记用于设定表格中某 - phpStudy...
  7. php对象持久化,在 Oracle 中完成 PHP5 对象的持久
  8. php ado,常用的php ADODB使用方法集锦
  9. 【深度学习】U-Net 网络分割多分类医学图像解析
  10. 东莞网络推广浅析网站优化中常见的引流方式有哪些?