力扣链接
给定一个链表,判断链表中是否有环。如果链表中存在环,则返回 true 。 否则,返回 false 。
方法1:快慢指针
时间复杂度o(n),空间复杂度O(1)
定义两个指针,一个指向头结点的慢指针(slow),一个为头结点下一个节点的快指针(fast)
循环判断条件由于fast一次走两步,所以fast!=null 并且 fast.next != null && slow!=null 预防循环时空指针异常
进入循环,fast走两步,slow走一步,如果fast == slow 说明 链表中有环,导致两个指针相遇
如果链表无环,那么fast肯定会走到为空的时候,跳出循环