Given a linked list, determine if it has a cycle in it.
Follow up:
Can you solve it without using extra space?
题意:判断一个链表是否带环。
这是一道关于链表很经典的题目,解法其实跟跑操场(操场就是个环)原理很类似:A,B从同一起点开始一起跑,A跑得慢,B跑得快,那么B一定会在某个时刻跟A相遇(B比A跑快了一圈了)。
但是万一没有环呢?因为B跑得快,所以只要B还没到终点,A就肯定还没到终点。所以只需要判断跑得快得指针非空就行了。
一开始的代码就写错了,既判断了A又判断了B。
1 | class Solution { |
正确的代码如下:
1 | struct ListNode { |