package main
import . "nc_tools"
/*
 * type ListNode struct{
 *   Val int
 *   Next *ListNode
 * }
 */

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param head ListNode类 
 * @return ListNode类
*/
func insertionSortList( head *ListNode ) *ListNode {
    // write code here
    if head == nil && head.Next == nil {
        return head
    }
    
    dumny := &ListNode{Val:-10001}
    p:=dumny
    for head != nil {
        for p.Next != nil && p.Next.Val < head.Val {
            p = p.Next
        }
        
        node := p.Next
        p.Next = head
        head = head.Next
        
        p.Next.Next = node
        
        p = dumny
    }
        
    return dumny.Next
    
}