'''
方法3:首先创建两个指针p1和p2,让它们同时指向这个链表的头结点。然后开始一个大循环,在循环体中,
让指针p1每次向后移动一个节点,让指针p2每次向后移动两个节点,然后比较两个指针指向的节点是否相同。
如果相同,则可以判断出链表有环,如果不同,则继续下一次循环。
'''
class Node:
def __init__(self,data = None, next = None):
self.data = data
self.next = next
node1=Node(5)
node2=Node(3)
node3=Node(7)
node4=Node(2)
node5=Node(6)
node6=Node(8)
node7=Node(1)
node1.next=node2
node2.next=node3
node3.next=node4
node4.next=node5
node5.next=node6
node6.next=node7
node7.next=node4
p1=node1
p2=node1
isFound=True
while p2 !=None and p2.next !=None:
isFound=False
if(p1.data==node1.data and p2.data==node1.data):
p1 = p1.next
p2 = p2.next.next
continue
if(p1.data==p2.data):
print(p1.data)
isFound=True
break
if isFound:
break
p1=p1.next
p2=p2.next.next