import java.util.*;
/*
* public class ListNode {
* int val;
* ListNode next = null;
* }
*/
public class Solution {
/**
*
* @param head ListNode类
* @return ListNode类
*/
public ListNode insertionSortList (ListNode head) {
// write code here
if(head == null || head.next == null) return head;
ListNode node = new ListNode(head.val);
ListNode headNext = insertionSortList(head.next);
if(node.val <= headNext.val){
node.next = headNext;
return node;
}
ListNode cur = headNext;
ListNode prev = new ListNode(-1);
while(cur != null && cur.val < node.val){
prev = cur;
cur = cur.next;
}
if(cur == null){
prev.next = node;
}else{
prev.next = node;
node.next = cur;
}
return headNext;
}
}