LeetCode 147 单链表插入排序,主要知识点,单链表翻转。
单链表翻转关键点只有4步。
1. 暂存Next节点
2. 将当前节点Next 指向Head的Next
3. 将Head的Next指向当前节点
4. 将暂存节点赋值给当前节点
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func insertionSortList(head *ListNode) *ListNode {
dummy := &ListNode{}
curr := head
for curr != nil {
mov := dummy
for mov.Next!=nil && mov.Next.Val<curr.Val {
mov=mov.Next
}
t:=curr.Next
curr.Next=mov.Next
mov.Next=curr
curr=t
}
return dummy.Next
}