cur = head; while (cur != null) { Console.WriteLine(cur.data); cur = cur.next; } static void DoSomething(Node cur) { if (cur != null) { Console.WriteLine(cur.data); DoSomething(cur.next); Console.WriteLine(cur.data); } } And its invoked like this: DoSomething(head);