开启刷题模式,夯实一下基本功

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
}

  

posted @ 2022-01-20 00:09  丶Blank  阅读(45)  评论(0编辑  收藏  举报