[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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Annotation注解

    Annotation注解Annotation 称为注释或注解 它是一个接口 注解提供了一种为程序元素 类 方法 成员变量等 设置元数据 描述其它数据的数据 的方法 编译器 开发工具或其它程序中可以通过反射来获取程序中的 Annotation 对象 通过该对象获得注解里的元数据 注解不影响程序代码 通过使用注解可以在不改变程序逻辑的情况下 在源文件中嵌入一些补充信息 1 基本注释 Override 表明该方

    2026年2月2日
    0
  • linux三剑客老二sed的增、删、改、查

    linux三剑客老二sed的增、删、改、查

    2021年9月17日
    60
  • 小程序列表跳转至详情_小程序跳转链接怎么获取

    小程序列表跳转至详情_小程序跳转链接怎么获取效果展示:列表页js部分:onLoad:function(options){varthat=this;wx.request({url:’你的接口’,data:{ 接口参数},header:{‘content-type’:’ap…

    2022年8月18日
    8
  • python logging模块 日志 (详细解析)「建议收藏」

    python logging模块 日志 (详细解析)「建议收藏」目录1基本使用2将日志写入到文件2.3设置消息的等级2.4捕获traceback2.5多模块使用logging3通过JSON或者YAML文件配置logging模块3.1通过JSON文件配置3.2通过YAML文件配置1基本使用转自:Python常用模块大全(整理)-略微抖动-博客园配置logging基本的设置,然后在控制台输出日志,importlogginglogging.basicConfig(level=logg

    2022年5月8日
    46
  • Codeforces 85D Sum of Medians(线段树)[通俗易懂]

    Codeforces 85D Sum of Medians(线段树)

    2022年1月25日
    58
  • pycharm断点怎么用_idea如何打断点调试

    pycharm断点怎么用_idea如何打断点调试如何进行断点调试1添加断点2调试断点3调试到下一个断点4关于断点调试的说明4.1stepinto4.2stepover4.3stepout5快捷键6参考本文是基于pycharm2019.12的版本撰写的。1添加断点断点的添加方法:在代码的行标前面左键单击即可,如下图所示注意:被注释了的代码行是添加不了断点的!!!2调试断点两种方法,效果都是一样的:点击那个绿色的甲虫图标,开始断点调试,如下图,或者使用右键,选中debug,开始断点调试,如下

    2022年8月25日
    7

发表回复

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

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