[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)
上一篇 2022年3月12日 下午1:35
下一篇 2022年3月12日 下午2:00


相关推荐

  • 云计算与虚拟化

    云计算与虚拟化云计算与虚拟化一 什么是云计算云计算 cloudcomputi 是分布式计算的一种 指的是通过网络 云 将巨大的数据计算处理程序分解成无数个小程序 然后 通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户 云计算是一种模型 它可以实现随时随地 便捷地 随需应变地从可配置计算资源共享池中获取所需的资源 例如 网络 服务器 存储 应用 及服务 资源能够快速供应并释放 使管理资源的工作量和与服务器提供商的交互减小到最低限度 2 云计算的特色超大规模 云 具有相当的规模 企

    2026年3月20日
    1
  • ubuntu查看系统版本

    ubuntu查看系统版本下面写一下查看当前 Linux 系统的版本的方法一 使用命令 cat proc version 查看 linux 版本号 Linuxversion 4 0 99 generic buildd lgw01 amd64 007 GCC 版本号 gccversion9 3 0Ubuntu 版本号 ubuntu1 20 04 二 使用命令 uname a 查看显示 linux 的内核版本和系统是多少位的 X86 64 代表系统是 64 位的三 使用命令 lsb r

    2026年3月20日
    2
  • AI智能体当科研助理:“龙虾”游进生物实验室,“书生”参与跨学科研究

    AI智能体当科研助理:“龙虾”游进生物实验室,“书生”参与跨学科研究

    2026年3月12日
    2
  • linux安装maven(傻瓜式安装)

    linux安装maven(傻瓜式安装)原地址 linux 安装 maven 惊涛随笔 博客园 1 安装 wget 命令 yum yinstallwget 下载 maven 安装包 wgethttp mirrors cnnic cn apache maven maven 3 3 5 4 binaries apache maven 3 5 4 bin tar gz3 解压 maven 安装包 tar zxvfapache maven 3 5 4 bin tar gz4 配置 mavenvi

    2026年3月26日
    1
  • java基本输入语句_java键盘输入语句

    java基本输入语句_java键盘输入语句在Java中进行输入时,最常用的两种输入方式为:1.使用ScannerScanner使用步骤:导入包importjava.util.Scanner;//导包的动作必须出现在类定义的上方创建对象//newScanner(System.in)为固定格式,不可以改变Scannersc=newScanner(System.in); 接收数据inti=sc.nextInt(); //这里使用的为int型,如果改变,则需要改变sc.nextInt();

    2025年11月25日
    5
  • RabbitMQ延迟队列

    RabbitMQ延迟队列RabbitMQ 延迟队列使用场景消息延迟推送的 预支付订单创建成功后 30 分钟后还未完成支付则自动修改订单状态 自动取消订单 用户注册成功后 如果 3 天没有登录则进行短信提醒 优惠券过期前发送短信进行提醒等业务场景

    2026年3月18日
    2

发表回复

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

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