| 12345678910111213141516171819202122232425262728293031323334 | package main/** * Definition for singly-linked list. * type ListNode struct { *     Val int *     Next *ListNode * } */func insertionSortList(head *ListNode) *ListNode {	if head == nil || head.Next == nil {		return head	}	dummy := &ListNode{}	beg := head	for beg != nil {		prev := dummy		for ; prev.Next != nil && beg.Val > prev.Next.Val; prev = prev.Next {		}		insert := beg		beg = beg.Next		insert.Next = prev.Next		prev.Next = insert	}	return dummy.Next}// func main() {// 	l1 := toLinkedList([]int{// 		-1, 5, 3, 4, 0})// 	printList(insertionSortList(l1))// 	l2 := (*ListNode)(nil)// 	printList(insertionSortList(l2))// }
 |