问题
找出环形链表的入口位置。
思路一
直接使用set结构,第一个重复的地方就是入口。
public class Solution {
public ListNode detectCycle(ListNode head) {
ListNode p = head;
Set<ListNode> set = new HashSet<>();
while (p != null && set.add(p)) {
p = p.next;
}
return p;
}
}
时间复杂度:O(n)
空间复杂度:O(n)
思路二
如果使用快慢指针的话,是个数学问题。
硬广告
欢迎订阅公众号:double6