Python3实现的判断环形链表算法示例


Posted in Python onMarch 07, 2019

本文实例讲述了Python3实现的判断环形链表算法。分享给大家供大家参考,具体如下:

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

方案一:快慢指针遍历,若出现相等的情况,说明有环

# Definition for singly-linked list.
# class ListNode(object):
#   def __init__(self, x):
#     self.val = x
#     self.next = None
class Solution(object):
  def hasCycle(self, head):
    """
    :type head: ListNode
    :rtype: bool
    """
    slow = fast = head
    while fast and fast.next:
      slow = slow.next
      fast = fast.next.next
      if fast == slow:
        return True
    return False

方案二:遍历链表,寻找.next=head的元素。 但超出时间限制

# Definition for singly-linked list.
# class ListNode(object):
#   def __init__(self, x):
#     self.val = x
#     self.next = None
class Solution(object):
  def hasCycle(self, head):
    """
    :type head: ListNode
    :rtype: bool
    """
    if not head:
      return False
    cur = head.next
    while cur:
      if cur.next == head:
        return True
      cur = cur.next
    return False

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
跟老齐学Python之??碌某?? target=
Sep 12 Python
两个使用Python脚本操作文件的小示例分享
Aug 27 Python
python中根据字符串调用函数的实现方法
Jun 12 Python
django的ORM操作 删除和编辑实现详解
Jul 24 Python
Django实现发送邮件找回密码功能
Aug 12 Python
pytorch 图像中的数据预处理和批标准化实例
Jan 15 Python
多个python文件调用logging模块报错误
Feb 12 Python
Python列表去重复项的N种方法(实例代码)
May 12 Python
如何将json数据转换为python数据
Sep 04 Python
简述python&pytorch 随机种子的实现
Oct 07 Python
Python中递归以及递归遍历目录详解
Oct 24 Python
浅析Python 读取图像文件的性能对比
Mar 07 #Python
python try 异常处理(史上最全)
Mar 07 #Python
通过shell+python实现企业微信预警
Mar 07 #Python
Python一个简单的通信程序(客户端 服务器)
Mar 06 #Python
用Python写一个模拟qq聊天小程序的代码实例
Mar 06 #Python
Python二叉树的镜像转换实现方法示例
Mar 06 #Python
Python实现二叉树的常见遍历操作总结【7种方法】
Mar 06 #Python
You might like
PHP 函数执行效率的小比较
2010/10/17 PHP
Destoon模板制作简明教程
2014/06/20 PHP
php构造函数的继承方法
2015/02/09 PHP
Yii2压缩PHP中模板代码的输出问题
2018/08/28 PHP
写入cookie的JavaScript代码库 cookieLibrary.js
2009/10/24 Javascript
jQuery的12招常用技巧分享
2011/08/08 Javascript
Javascript面向对象编程(二) 构造函数的继承
2011/08/28 Javascript
对于this和$(this)的个人理解
2013/09/08 Javascript
动态加载JS文件的三种方法
2013/11/08 Javascript
BOOTSTRAP时间控件显示在模态框下面的bug修复
2015/02/05 Javascript
Vue的实例、生命周期与Vue脚手架(vue-cli)实例详解
2017/12/27 Javascript
Node.js Event Loop各阶段讲解
2019/03/08 Javascript
微信小程序云开发(数据库)详解
2019/05/17 Javascript
深入理解令牌认证机制(token)
2019/08/22 Javascript
基于vue-cli3创建libs库的实现方法
2019/12/04 Javascript
javascript实现简易数码时钟
2020/03/30 Javascript
JavaScript 如何计算文本的行数的实现
2020/09/14 Javascript
JS实现小米轮播图
2020/09/21 Javascript
python实现决策树C4.5算法详解(在ID3基础上改进)
2017/05/31 Python
Python编程django实现同一个ip十分钟内只能注册一次
2017/11/03 Python
Python+selenium 获取浏览器窗口坐标、句柄的方法
2018/10/14 Python
Python 分发包中添加额外文件的方法
2019/08/16 Python
使用OpenCV实现仿射变换—旋转功能
2019/08/29 Python
python获取系统内存占用信息的实例方法
2020/07/17 Python
Pandas对每个分组应用apply函数的实现
2020/12/13 Python
Flask处理Web表单的实现方法
2021/01/31 Python
python常量折叠基础知识点讲解
2021/02/28 Python
详解canvas drawImage()方法绘制图片不显示的问题
2018/10/08 HTML / CSS
EGO Shoes美国/加拿大:英国时髦鞋类品牌
2018/08/04 全球购物
数控技术与应用毕业生自荐信
2013/09/24 职场文书
公共事业管理本科生求职信
2013/10/07 职场文书
数控机械专业个人的自我评价
2014/01/02 职场文书
遗产继承公证书
2014/04/09 职场文书
桥梁工程专业求职信
2014/04/21 职场文书
社会工作专业求职信
2014/07/15 职场文书
CSS中float高度塌陷问题的四种解决方案
2022/04/18 HTML / CSS