首页 > 编程 > Python > 正文

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

2020-01-04 13:35:38
字体:
来源:转载
供稿:网友

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

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

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

# Definition for singly-linked list.# class ListNode(object):#   def __init__(self, x):#     self.val = x#     self.next = Noneclass 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 = Noneclass 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教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表