Given a linked list, determine if it has a cycle in it.
runtime:92ms
总结:快慢指针法,建立虚表头,快指针走两步,慢指针走一步,若存在环,则快指针会追上慢指针
# 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):
if not head or not head.next:
return False
dummy=ListNode(0)
dummy.next=head
fast=dummy
slow=dummy
while fast.next and fast.next.next:
slow=slow.next
fast=fast.next.next
if slow==fast:
return True
return False