给定一个有环链表,实现一个算法返回环路的开头节点
有环链表的定义:
在链表中某个节点的next元素指向在它前面出现过的节点,则表明该链表存在环路。
#方法一:
思路:使用set集合,进行判断是否存在,如果过,则该点为环起点。
class Node():#链表节点
def __init__(self,val):
self.val = val
self.next = None
class LinkList:#链表
def __init__(self):
self.head = Node(None)
def init(self,iter): #将一个可迭代对象初始化为一个链表
p = self.head
for i in iter:
p.next = Node(i)
p = p.next
def checkcircle(link):
s = set()
p = link.head