1,方法一:用两个指针同时从头结点出发,一个指针一次走一步,另一个指针一次走两步。(走之前判断一下下一步是否存在,否则可能抛出空指针异常)
如果走的慢的指针追上了走的快的指针,即它们指向同一个节点,那么此链表存在环;如果走的快的指针走到了链尾(next为null),也没有出追上,那么此链表就不存在环。
方法二:遍历链表,并把节点的引用(或内存地址)放入哈希表中,放入前都判断一下是否已存在这个节点,如果已经存在那说明存在环,如果遍历至链尾那么不存在环。
1,方法一:用两个指针同时从头结点出发,一个指针一次走一步,另一个指针一次走两步。(走之前判断一下下一步是否存在,否则可能抛出空指针异常)
如果走的慢的指针追上了走的快的指针,即它们指向同一个节点,那么此链表存在环;如果走的快的指针走到了链尾(next为null),也没有出追上,那么此链表就不存在环。
方法二:遍历链表,并把节点的引用(或内存地址)放入哈希表中,放入前都判断一下是否已存在这个节点,如果已经存在那说明存在环,如果遍历至链尾那么不存在环。