怎么判断链表有环?

一、穷举遍历

头结点开始,依次遍历单链表的每一个节点。每遍历到一个新节点,就从头遍历新节点之前的节点,比较ID,如果存在相同ID,则表示链表有环。

二、哈希表缓存

创建一个以节点ID为键的HashSet集合,用来存储曾经遍历过的节点,从头节点开始遍历,每遍历一个新节点,就与集合里的节点比较,如果存在相同节点ID,则说明链表有环。

三、快慢指针

创建两个指针,同时指向链表头结点,其中一个指针每次向前走一步,另一个指针每次向前走两步,比较两个指针指向的节点是否相同,如果相同则有环,如果不同,则继续下一次循环。

详情:https://blog.csdn.net/N1314N/article/details/90736225

原文地址:https://www.cnblogs.com/jinkaijie/p/12495166.html