算法 - python - 判断链表是否有环
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 - 判断链表是否有环相关推荐
- 【刷算法】判断链表是否有环以及返回入环节点
题目描述 判断一个单链表是否有环,有环则返回入环节点,否则返回null 1->2->3->4->5->6↑ ↓8<-7 复制代码 例如上面这个链表就有环,入环节点是 ...
- 算法练习——判断链表是否有环 leetcode.141 python
题目描述: 给你一个链表的头节点 head ,判断链表中是否有环. 如果链表中存在环 ,则返回 true . 否则,返回 false . 方法一:hash表 hashset是一种特殊的hashmap, ...
- python判断链表是否有环_判断链表是否有环
判断一个单向链表是否有环.(指向表头结点的指针为head) 方法一: (1)用两个指针p1和p2分别指向表头结点,即p1=p2=head (2)p1和p2分别采用1和2作为步长遍历该链表.(注意,p2 ...
- php判断单向链表中有没有环,python判断链表是否有环的实例代码
先看下实例代码: class Node: def __init__(self,value=None): self.value = value self.next = None class LinkLi ...
- 双指针算法之快慢指针(一):力扣【判断链表是否有环】leetcode-141、142
一.简介:什么是快慢指针? 快慢指针,顾名思义,无非就是设置一个快指针,一个慢指针,初始化的时候,快指针和慢指针都指向链表的头结点,前进的时候一个在前一个在后,结合起来可以十分巧妙的解决链表中的一些问 ...
- 数据结构---判断链表是否有环
判断链表是否有环 判断链表是否有环 方法1 方法2 JAVA实现 问题扩展1 问题扩展2 判断链表是否有环 有一个单向链表,链表中有可能出现"环",就像下图这样.那么,如何用程序来 ...
- C程序:如何判断链表是否有环
C程序:如何判断链表是否有环 这是个常见的面试题哦,总之我面试的时候遇到过, 当时没有答上来,回去后想出来下面的方法一,该法还有个附加优点,可以判断出链表在哪个地方形成环的(即如果想拆开这个环,从哪个 ...
- 使用快慢指针判断链表是否有环
有时候在面试中可能会遇到叫我们判断链表中是否有环的问题,这个问题的解决方法也很多,这里我记录一下比较简单的使用快慢指针的方法: 使用快慢指针是指: 设置两个指针,一快一慢,快指的是每次移动两步,慢指针 ...
- 判断链表是否存在环(及其延伸)
有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环. 问题: 1.如何判断一个链表是不是这类链表? 2.如果链表为存在环,如果找到环的入口点 ...
最新文章
- 浅析网站开发的未来前景如何?
- c++面向对象三大特征封装、继承和多态知识总结
- TensorFlow学习笔记(十七)tf.nn.conv2d
- 宝塔常用的命令大全(直接上官网)
- 如何利用脚本方法清除文本框中汉字,从而保留英文字母和数字等
- webp转换gif_用 WebP 创建尺寸更小、细节更丰富的图片,以此来提高网站的速度...
- 如何在linux mysql_如何在linux下安装mysql
- 人脸对齐(十九)--Regressing a 3D Face Shape from a Single Image
- Linkage 使用方法总结
- c# mysql清理_C# 中清空sql数据库中的数据
- 这一本《电子工程师技术手册》,你要不要?
- Jquery实现确定取消对话框
- Python系列9——类和对象(3)
- windows10无法使用内置管理员账户打开应用
- 科技大佬对人工智能的看法
- [解决方案]罗技POWERPLAY鼠标垫无法连接G703/G903/G403等鼠标
- 想学3dmax应该怎么学?
- SET TIMING ON
- RabbitMQ的持久化
- 17 内存规整(memory compaction)
热门文章
- 数据库设计准则(第一、第二、第三范式说明)
- android 系统gpu 调试_[RK3288][Android6.0] 调试笔记 --- 读取当前DDR和GPU频率方法
- 字符串对象转数组对象_js对象转数组的方法 js怎么将数组对象转变成字符串
- 好用的 php类,一个好用的php文件上传处理类
- gzencode php demo,8个必备的PHP功能实例代码
- html语言表格背景颜色,HTML_HTML表格标记教程(36):表头的背景色属性BGCOLOR,TH标记用于设定表格中某 - phpStudy...
- php对象持久化,在 Oracle 中完成 PHP5 对象的持久
- php ado,常用的php ADODB使用方法集锦
- 【深度学习】U-Net 网络分割多分类医学图像解析
- 东莞网络推广浅析网站优化中常见的引流方式有哪些?