如何判断是否是一个环,采用的方法的形象说明就是双人走,一个走一步,一个走2步,如果是环,就会相遇,反之,就遇不上,非环就有一个边界。代码如下:
# 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
if not head.next:
return False
twostep = head.next.next
for i in xrange(2147483647):
if head.next == twostep:
return True
else:
head = head.next
if not twostep:
return False
elif not twostep.next:
return False
else:
twostep = twostep.next.next