C# code as below:
class Link<T>
{
public Link<T> Next { get; set; }
public T data { get; set; }
public static bool IfHaveCycle(Link<T> link)
{
//Node container
List<Link<T>> nodes = new List<Link<T>>();
//Add root node
nodes.Add(link);
while (link.Next != null)
{
if (nodes.Contains(link.Next))
{
return true;
}
else
{
nodes.Add(link.Next);
link = link.Next;
}
}
return false;
}
}
低端解法 实在不会指针。。