LeetCode - 环形链表检测
方法一:哈希表
# 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
"""
nodesSeen = set([])
while(head!=None):
if head in nodesSeen:
return True
else:
nodesSeen.add(head)
head = head.next
return False
方法二:快慢指针
class Solution(object):
def hasCycle(self, head):
"""
:type head: ListNode
:rtype: bool
"""
if head == None:
return False
slow = head
fast = head.next
while(slow != fast):
if fast == None or fast.next == None:
return False
slow = slow.next
fast = fast.next.next
return True