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函数式编程
Jun 09 Python
黑科技 Python脚本帮你找出微信上删除你好友的人
Jan 07 Python
使用Python+wxpy 找出微信里把你删除的好友实例
Feb 21 Python
keras tensorflow 实现在python下多进程运行
Feb 06 Python
python读取csv文件指定行的2种方法详解
Feb 13 Python
将数据集制作成VOC数据集格式的实例
Feb 17 Python
pycharm如何实现跨目录调用文件
Feb 28 Python
Django静态资源部署404问题解决方案
May 11 Python
几款好用的python工具库(小结)
Oct 20 Python
python基于pygame实现飞机大作战小游戏
Nov 19 Python
基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码
Feb 18 Python
Python趣味挑战之用pygame实现简单的金币旋转效果
May 31 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常用字符串处理函数实例分析
2014/11/22 PHP
mysql_escape_string()函数用法分析
2016/04/25 PHP
Yii2框架实现利用mpdf创建pdf文件功能示例
2019/02/08 PHP
js类的静态属性和实例属性的理解
2009/10/01 Javascript
解析Jquery中如何把一段html代码动态写入到DIV中(实例说明)
2013/07/09 Javascript
JavaScript立即执行函数的三种不同写法
2014/09/05 Javascript
jQuery禁用快捷键例如禁用F5刷新 禁用右键菜单等的简单实现
2016/08/31 Javascript
老生常谈JavaScript 函数表达式
2016/09/01 Javascript
js实现九宫格拼图小游戏
2017/02/13 Javascript
利用imgareaselect辅助后台实现图片上传裁剪
2017/03/02 Javascript
webpack2.0搭建前端项目的教程详解
2017/04/05 Javascript
vuex 项目结构目录及一些简单配置介绍
2018/04/08 Javascript
解决Mac下安装nmp的淘宝镜像失败问题
2018/05/16 Javascript
vue2.0 可折叠列表 v-for循环展示的实例
2018/09/07 Javascript
详解jQuery-each()方法
2019/03/13 jQuery
jQuery操作cookie的示例代码
2019/06/05 jQuery
JavaScript实现拖拽和缩放效果
2020/08/24 Javascript
使用typescript快速开发一个cli的实现示例
2020/12/09 Javascript
[56:35]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第二局
2016/02/27 DOTA
Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)
2017/03/20 Python
通过源码分析Python中的切片赋值
2017/05/08 Python
Pandas DataFrame 取一行数据会得到Series的方法
2018/11/10 Python
Python写一个基于MD5的文件监听程序
2019/03/11 Python
Python初学者常见错误详解
2019/07/02 Python
Python 转换RGB颜色值的示例代码
2019/10/13 Python
python飞机大战pygame游戏背景设计详解
2019/12/17 Python
墨西哥皇宫度假村预订:Palace Resorts
2018/06/16 全球购物
颇特女士:NET-A-PORTER(直邮中国)
2020/07/11 全球购物
Yahoo的PHP面试题
2014/05/26 面试题
东方红海科技面试题软件测试方面
2012/02/08 面试题
化工工艺专业求职信
2013/09/22 职场文书
如何写一封打动人心的求职信
2014/02/17 职场文书
公司运动会策划方案
2014/05/25 职场文书
优秀应届本科生求职信
2014/07/19 职场文书
圆明园纪录片观后感
2015/06/03 职场文书
2015年学校综合治理工作总结
2015/07/20 职场文书