/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func insertionSortList(head *ListNode) *ListNode {
if head==nil{
return head
}
//定一个前置节点
dummy:=new(ListNode)
cur:=head
for cur!=nil{
//每次从前面的节点寻找大于cur的节点,插入此节点前面
pre:=dummy
for pre.Next!=nil&&pre.Next.Val<cur.Val{
pre = pre.Next
}
next:=cur.Next
//cur 放pre前面
cur.Next = pre.Next
pre.Next = cur
cur = next
}
return dummy.Next
}