public static void Main()
Node<int> node1 = MergeLinkedLists_Node1();
Node<int> node2 = MergeLinkedLists_Node2();
Print(node1, "Node1 is: ");
Print(node2, "Node2 is: ");
var res = MergeList(node1, node2);
Print(res, "After Merge: ");
private static Node<int> MergeList(Node<int> a, Node<int> b)
else if (a == null || b == null)
Node<int> retNode = null;
retNode.next = MergeList(a, b.next);
retNode.next = MergeList(a.next, b);
private static Node<int> MergeLinkedLists_Node1()
Node<int> node = new Node<int>();
node.next = new Node<int>();
node.next.next = new Node<int>();
node.next.next.next = new Node<int>();
node.next.next.next.data = 7;
node.next.next.next.next = null;
private static Node<int> MergeLinkedLists_Node2()
Node<int> node = new Node<int>();
node.next = new Node<int>();
node.next.next = new Node<int>();
node.next.next.next = new Node<int>();
node.next.next.next.data = 8;
node.next.next.next.next = null;
private static void Print(Node<int> node, string str)
Console.Write(node.data + " --> ");