LeetCode147. 对链表进行插入排序-Java&Go-头插法

  • 算法
    • 1.头插法
    • 2.插入前先记录下一个要插入的节点,然后从头开始找插入位置
public ListNode insertionSortList(ListNode head) {
    if (head == null || head.next == null) {
        return head;
    }

    ListNode dummy = new ListNode(Integer.MIN_VALUE);
    ListNode insertNode = head;
    while (insertNode != null) {
        ListNode insertNext = insertNode.next;
        ListNode prev = dummy;
        while (prev.next != null && prev.next.val <= insertNode.val) {
            prev = prev.next;
        }
        insertNode.next = prev.next;
        prev.next = insertNode;
        insertNode = insertNext;
    }
    return dummy.next;
}
func insertionSortList(head *ListNode) *ListNode {
    if head == nil || head.Next == nil {
        return head
    }

    dummy := &ListNode{}
    insertNode := head
    for insertNode != nil {
        insertNext := insertNode.Next
        prev := dummy
        for prev.Next != nil && prev.Next.Val <= insertNode.Val {
            prev = prev.Next
        }
        insertNode.Next = prev.Next
        prev.Next = insertNode
        insertNode = insertNext
    }
    return dummy.Next
}
LeetCode题解 文章被收录于专栏

测试

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-10 11:45
你不要过来啊啊啊啊啊啊啊
码农索隆:对面:“今天你不面也得面”
点赞 评论 收藏
分享
门口唉提是地铁杀:之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
你的秋招第一场笔试是哪家
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务