题目链接:https://leetcode.com/problems/linked-list-cycle/
判断一个链表中是否有环,可以设置两个指针,第一个每次前进一格,第二个每次前进两格。
对于前进两格的指针,需要先判断前进一格时是否为 NULL :
-
如果不判断是不是 NULL ,取两次 next 可能会造成 Runtime Error 。
-
如果是 NULL ,说明链表不存在环。
如果链表中存在环,则 每次前进两格的指针 最终会追上 每次前进一格的指针 。
如果链表中不存在环,则 每次前进两格的指针 最终为 NULL 。
备注:前几天看到了"判断两条链表是否存在公共部分"这一题。其中一种做法是,将两条链表首尾相接,从而转化为判断是否有环存在的问题。