141 linked list cycle

来源:互联网 发布:华中大数据交易所 编辑:程序博客网 时间:2024/06/05 06:09

linked list cycle

Given a linked list, determine if it has a cycle in it.
Follow up:
Can you solve it without using extra space?

用tortoise and hare算法,一个快指针一个慢指针。

代码块

leetcode上的最优解法:

# 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        """        try:            slow=head            fast=head.next            while slow is not fast:                slow=slow.next                fast=fast.next.next            return True        except:            return False

自己的:

class Solution(object):    def hasCycle(self, head):        """        :type head: ListNode        :rtype: bool        """        if head == None or head.next == None:            return False        slow = head        fast = head.next        while fast.next and fast.next.next:            slow = slow.next            fast = fast.next.next            if fast == slow:                return True        return False

StackEdit


原创粉丝点击