[LeetCode] Insertion Sort List 链表插入排序「建议收藏」

[LeetCode] Insertion Sort List 链表插入排序

大家好,又见面了,我是全栈君。

Sort a linked list using insertion sort.

链表的插入排序实现原理很简单,就是一个元素一个元素的从原链表中取出来,然后按顺序插入到新链表中,时间复杂度为O(n2),是一种效率并不是很高的算法,但是空间复杂度为O(1),以高时间复杂度换取了低空间复杂度。代码如下:

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode *insertionSortList(ListNode *head) {
        ListNode *res = new ListNode(-1);
        ListNode *cur = res;
        while (head) {
            ListNode *next = head->next;
            cur = res;
            while (cur->next && cur->next->val <= head->val) {
                cur = cur->next;
            }
            head->next = cur->next;
            cur->next = head;
            head = next;
        }
        return res->next;
    }
};

本文转自博客园Grandyang的博客,原文链接:链表插入排序[LeetCode] Insertion Sort List ,如需转载请自行联系原博主。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107859.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java遍历Map效率对比

    Java遍历Map效率对比Java中Map容器的遍历有多种方式,但是不同的方式效率会大有不同,以前没有注意这些细节,随意使用遍历方式在本地可能没有什么影响,但是在项目在高频使用需要特别注意,尽量使用高效的方式。首先,Map.Entry<K,V>是可以包含了Key和Value的,keySet包含了所有的Key,再使用get方法可以拿到对应的Value;所以包含Key和Value内容…

    2022年4月7日
    63
  • 5.4 图层样式面板的实例讲解 [原创Ps教程][通俗易懂]

    5.4 图层样式面板的实例讲解 [原创Ps教程][通俗易懂]原文:http://coolketang.com/staticPhotoshop/5a98d4abac502e0032ef2fae.html1.本节课程将为您演示,[图层样式面板]的使用。为了方便使用图层的各种样式,首先点击工具箱中的[横排文字工具],创建一个文本图层。 2.然后在画面的适当位置上点击,确定输入文字的起点位置。 3.接着输入一行文字。 4.最后点击对号图标,完成文字的输入。…

    2025年9月12日
    4
  • 如何学习游戏编程?

    如何学习游戏编程?如何学习游戏编程开发

    2022年6月21日
    23
  • 手机开发平台资料介绍怎么写_如何开发一款手机app

    手机开发平台资料介绍怎么写_如何开发一款手机app近来无事,把手机开发平台的学习指南、教程和资料总结一下,方便大家参考,欢迎转载,请注明出处http://blog.csdn.net/changduanwang。手机客户端软件开发最大的困难就是平台不统一,手机开发平台太多。手机可分为智能手机开发和featherphone手机。开发平台可分为开放式平台和封闭式平台,开放式平台包括symbian、windowsmobile、linux、iPho

    2022年8月12日
    6
  • anycast技术「建议收藏」

    anycast技术「建议收藏」转载别人的,不好意思啊浅析AnyCast网络技术什么是BGPAnyCast?BGPanycast就是利用一个(多个)as号码在不同的地区广播相同的一个ip段。利用bgp的寻路原则,短的aspath会选成最优路径(bgp寻路原则之n),从而优化了访问速度。其实bgpanycast是不同服务器用了相同的ip地址。阿里的DNS就是使用了BGPAn…

    2022年5月10日
    50
  • cefsharp播放视频_flash播放器手机版

    cefsharp播放视频_flash播放器手机版原生CefSharp组件缺少FlashPlayer,实现内置浏览器功能时,不支持播放flash。若想使用flash播放功能,我们需要在初始化CefSharp组件时,加载flash播放插件,并设置支持flash播放。Chrome浏览器内核的flash插件文件为pepflashplayer.dll,将pepflashplayer.dll文件放在程序运行目录下,加载flash插件的C#代码如下:v…

    2022年9月13日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号