温馨提示
建议看此篇文章之前,先看 用JavaScript刷leetcode第141题-链表是否有环 这篇文章
一、题目描述
题目地址
视频讲解
git代码
找环形链表的环起点,即链表开始入环的第一个节点。
如果链表无环,则返回null。
二、解题思路
下面是我自己手绘的图,很粗糙,但是不影响讲解题思路。如果看图不太明白,大家可以结合我的 视频讲解 来看
如果还是看不懂,就记住一个结论,相遇点到环起点距离 等于 头节点到环起点距离
三、具体代码
var detectCycle = function(head) {
let p = head;
let q = head;
while(q && q.next) {
p = p.next;
q = q.next.next;
if(p === q) {
p = head;
while(p !== q) {
p = p.next;
q = q.next;
}
return p;
}
}
return null;
};