using System.Collections.Generic;
public static void Main()
LinkedList<int> ll = new LinkedList<int>();
var root = ll.AddFirst(5);
curr = ll.AddAfter(curr, 2);
curr = ll.AddAfter(curr, 3);
curr = ll.AddAfter(curr, 7);
curr = ll.AddAfter(curr, 1);
curr = ll.AddAfter(curr, 6);
curr = ll.AddAfter(curr, 4);
Console.WriteLine("----------- List ----------------");
Console.WriteLine("--------Sorted List -------------");
public static LinkedListNode<int> FindSmallest(LinkedListNode<int> pointer){
LinkedListNode<int> small = pointer;
if(small.Value >= pointer.Value)
public static LinkedList<int> Sort(LinkedList<int> ll) {
LinkedList<int> sortedLl = new LinkedList<int>();
var currSortedNode = sortedLl.First;
while(pointer != null && ll.Count > 0){
var small = FindSmallest(pointer);
if(currSortedNode == null)
currSortedNode = sortedLl.AddFirst(small.Value);
currSortedNode = sortedLl.AddAfter(currSortedNode,small.Value);
ll.Remove(ll.Find(small.Value));
public static void Display(LinkedListNode<int> pointer)
Console.WriteLine(pointer.Value.ToString());