快慢指针的初始值均设为head,每次移动慢指针一步,移动快指针两步。
循环的条件为快指针不为null且快指针的next不为null。
每次移动后判断快指针和慢指针是否相等,若相等且不为null,则说明有环,返回true。若循环结束,说明没有环,返回false。
也可以在快指针和慢指针相等时break跳出循环,然后判断快指针和快指针的next是不是都不为null,若是说明有环,返回true;否则说明无环,返回false。
如果要找入环点:在快慢指针相遇后,将快指针变成慢指针指向head,两个指针一起移动,每次都移动一步。两个指针相遇的点就是入环点。
参考资料:判断链表是否有环