public static void Main()
node.next.next = new Node();
node.next.next.next = new Node();
node.next.next.next.data = 4;
node.next.next.next.next = new Node();
node.next.next.next.next.data = 5;
node.next.next.next.next.next = new Node();
node.next.next.next.next.next.data = 6;
node.next.next.next.next.next.next = null;
var res = ReverseInBetween(node, 3, 5);
Console.WriteLine("The output is ");
public static Node ReverseInBetween(Node head, int m, int n)
if (head == null || head.next == null)
Node dummy = new Node(-1);
for (int i = 0; i < m; i++)
for (int i = m; i <= n; i++)
private static void PrintLinkedList(Node head)
Console.Write(head.data + " --> ");