# Why TLE, {3,2,0,-4}, tail connects to node index 1

• Why the input like {3,2,0,-4} resulted in TLE? The algorithm is pretty like others: 1) first loop to find out whether there is a cycle. 2) reset p to head and another loop to find the beginning of the cycle...

And for {3, 2, 0,-4}, only first iteration is mandatory.

public class Solution
{
{
return null;

while (p != null && q!= null)
{
if ( p == q)
break;

p = p.next;
q = q.next;
if (q != null)
q = q.next;
}

if (p == null || q == null)
return null;

// must have a cycle
while (p != q )
{
p = p.next;
q = q.next;
}

return p;
}
}

• problem is in code section

// must have a cycle

while (p != q )
{
p = p.next;
q = q.next;
}

you can refer to this link..

• {3, 2, 0,-4} won't go to this part since there is no loop. it returns at

if (p == null || q == null)
return null;

• I think online judge has the bug. My original solution should work out. The following was accepted. The biggest change is not to initialize the fast to head.next.next.

{
return null;

while (slow != null && fast != null)
{
slow = slow.next;
fast = fast.next;
if (fast != null)
fast = fast.next;

if (slow == fast )
break;
}

if (slow == null || fast == null)
return null;

// must have a cycle
while (slow != fast)
{
slow = slow.next;
fast = fast.next;
}

return slow;
}

}

• see my updated codes. This code snippet worked out.

Looks like your connection to LeetCode Discuss was lost, please wait while we try to reconnect.