判断链表是否有环
方法:创建俩个指针p1, p2,一个一次移动一个节点,一个一次移动俩个节点,比较俩个指针指向的节点是否相同,相同则有环。
求环的长度?
俩个指针相遇,证明有环,此时可以让一个指针不动,另一个指针一步一步走,再次相遇就是环的长度。
求出入环节点?
把其中快指针放回到头节点,另一个指针保持在首次相遇的位置,俩个指针每次都向前走一步,最终相遇的节点就是入环节点。
# 判断链表有环
# 追击,一个指针走一步,一个指针走俩步
class Node:
def __init__(self, data):
self.data = data
self.next = None
def is_cycle(head)