Sort a linked list using insertion sort.
public ListNode insertionSortList(ListNode head) {
if(head==null)
return null;
ListNode small = head, large = head, run = head.next;
while(run!=null){
if(run.val <= small.val){
large.next = run.next;
run.next = small;
small = run;
run = large.next;
}
else if(run.val >=large.val){
large = run;
run = run.next;
}
else{
ListNode tmp = small;
while(tmp.next.val < run.val)
tmp = tmp.next;
large.next=run.next;
run.next = tmp.next;
tmp.next = run;
run = large.next;
}
}
return small;
}