leetcode147对链表进行插入排序

leetcode 147 Insertion Sort List

Posted by BY on August 6, 2020

前言

持续更新了

正文

问题来源

本问题来自leetcode上的147题。

问题描述

对链表进行插入排序。

示例 1:

输入: 4->2->1->3
输出: 1->2->3->4

示例 2:

输入: -1->5->3->4->0
输出: -1->0->3->4->5

分析:

/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func insertionSortList(head *ListNode) *ListNode {
    if head == nil {
        return nil
    }
    newhead := &ListNode{0, head}
    cur := head
    next := head.Next
    for next != nil {
        if cur.Val > next.Val {
            tmp := newhead
            for tmp.Next.Val < next.Val {
                tmp = tmp.Next
            }
            cur.Next = next.Next
            next.Next = tmp.Next
            tmp.Next = next
            next = cur.Next
        } else {
            cur = next
            next = next.Next
        }
    }
    return newhead.Next
}

总结:

勤思考。

结语

不管怎么样好好加油。