public static void Main()
first.Push(2).Push(3).Push(4).Push(5).Push(6).Push(7).Push(8).Push(9).Push(10);
var sorted = ReverseAlternateInGroup(first, 3);
Console.WriteLine("=============== After reversing ===============");
static Node ReverseAlternateInGroup(Node node, int group)
Node next = null, prev = null;
while (count < group && current != null)
while (count < group - 1 && current != null)
current.Next = ReverseAlternateInGroup(current.Next, group);
Console.Write(node.Data + " ");
public int GetLengthIterative()
public int GetLengthRecursive()
return 1 + Next.GetLengthRecursive();
public Node Push(int data)
var node = new Node(data);
public override string ToString()