227

问答题 227 /376

算法题,单链表判断是否有环(leetcode easy),以及判断环入口

参考答案

参考回答:

是否有环:
while (faster.next != null && faster.next.next != null) {
faster = faster.next.next;
slower = slower.next;
if (faster == slower) {
return true;
}
}
return false;

判断环入口:

Node meet = null;
while (faster.next != null && faster.next.next != null) {
faster = faster.next.next;
slower = slower.next;
if (faster == slower) {
meet = faster;
}
}
if (meet != null) {
newSlower = head;
while (newSlower != slower) {
newSlower = newSlower.next;
slower = slower.next;
}
return newSlower;
}
return null;