public Node Next { get; set; }
public int Value { get; set; }
public static void Main()
var n13 = new Node() { Value = 13 };
var n12 = new Node() { Next = n13, Value = 12 };
var n11 = new Node() { Next = n12, Value = 11 };
var n10 = new Node() { Next = n11, Value = 10 };
var n9 = new Node() { Next = n10, Value = 9 };
var n8 = new Node() { Next = n9, Value = 8 };
var n7 = new Node() { Next = n8, Value = 7 };
var n6 = new Node() { Next = n7, Value = 6 };
var n5 = new Node() { Next = n6, Value = 5 };
var n4 = new Node() { Next = n5, Value = 4 };
var n3 = new Node() { Next = n4, Value = 3 };
var n2 = new Node() { Next = n3, Value = 2 };
var n1 = new Node() { Next = n2, Value = 1 };
var n0 = new Node() { Next = n1, Value = 0 };
if (CheckStackoverflow2(n0) == true)
Console.WriteLine("stack overflow detected!!!");
Console.WriteLine("stack overflow hasn't detected");
public static bool CheckStackoverflow2(Node linkedList)
Node nextNode = linkedList;
if (linkedList == nextNode)
nextNode = nextNode.Next;