具体思路我就不在这照猫画虎啦,具体的算法思路可以看一下这篇文章,文章思路很清晰,文笔很诙谐幽默,我就直接上代码吧,python语言实现:
# coding:utf-8
#节点类
class Node(object):
def __init__(self, value):
self.val = value
self.next = None
#链表找环方法一
#用一个列表来保存走过的链表结点,然后在遍历节点过程观察结点是否会重复出现
def findloop(start):
vector = []
while start:
if start in vector:
return True
vector.append(start)
start = start.next
return False
#这种思路的时间复杂度为O(n*n),空间复杂度为O(n)(用了一个临时列表存储被遍历过的节点)
##=====================================分割线=============================&