leetcode, LC5: insertion-sort-list[通俗易懂]

leetcode, LC5: insertion-sort-list[通俗易懂]题目描述使用插入排序对链表进行排序。Sortalinkedlistusinginsertionsort.示例1输入{3,2,4}输出{2,3,4}解题思路new一个新的ListNode作为选择排序好的链表的表头对于原始链表中的每一个结点2.1.寻找新链表中该结点的插入位置2.2插入该结点返回新链表代码实现/***structListNode{* intval;* structListNode*next;

大家好,又见面了,我是你们的朋友全栈君。

题目描述

使用插入排序对链表进行排序。
Sort a linked list using insertion sort.

示例1

输入

{3, 2, 4}

输出

{2, 3, 4}

解题思路

  1. new 一个新的 ListNode 作为选择排序好的链表的表头
  2. 对于原始链表中的每一个结点
    2.1. 寻找新链表中该结点的插入位置
    2.2 插入该结点
  3. 返回新链表

代码实现

/** * struct ListNode { * int val; * struct ListNode *next; * }; */

class Solution { 
   
public:
    /** * * @param head ListNode类 * @return ListNode类 */
    ListNode* insertionSortList(ListNode* head) { 
   
        // write code here
        if(head == NULL || head->next == NULL) return head;
        
        ListNode* currNode;
        ListNode* retLListHead = new ListNode(0);
        ListNode* retLListCurrNodeLast;
        ListNode* retLListCurrNode;
        while(head){ 
   
            currNode = head;
            retLListCurrNodeLast = retLListHead;
            retLListCurrNode = retLListCurrNodeLast->next;
            head = head->next;
            while(retLListCurrNode && retLListCurrNode->val < currNode->val){ 
   
                retLListCurrNodeLast = retLListCurrNodeLast->next;
                retLListCurrNode = retLListCurrNode->next;
            }
            currNode->next = retLListCurrNode;
            retLListCurrNodeLast->next = currNode;
        }
        return retLListHead->next;
    }
};

运行结果

运行时间:27ms
占用内存:632k

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

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

(0)
上一篇 2022年7月23日 下午11:46
下一篇 2022年7月24日 上午6:00


相关推荐

  • MS17010(永恒之蓝)漏洞复现

    MS17010(永恒之蓝)漏洞复现MS17010(永恒之蓝)漏洞利用与复现首先需要准备win7的环境做为靶机获取信息利用nmap扫描得到,靶机IPnmap-sP192.168.229.0/24得到:IP:192.168.229.169然后利用:nmap–script=vuln192.168.229.169得到靶机信息:发现可能利用的漏洞:ms17-010然后启动msfmsfconsole然后查找漏洞路径:searchms17-010使用payload进行攻击:useexploit

    2022年4月30日
    55
  • plsqldev使用指南_plsql配置文件在哪儿

    plsqldev使用指南_plsql配置文件在哪儿plsqldev的配置plsqldev的安装需要这两个,可以在网上下载注意问题:1、Path变量中添加client的路径2、并且在plsqldev上配置这两个的路径,不需要登录,直接取消然后就可以进去这个了,然后点工具,首选项3、然后是新建目录,在这下面新建一个文件,里面写着这个文件的路径,以及数据库地址以及端口的配置4、tnsnames.ora的写法…

    2025年8月5日
    5
  • 新版Kubernetes问题处理流程

    新版Kubernetes问题处理流程

    2021年5月13日
    125
  • endnote中文参考文献格式下载(医学参考文献格式endnote)

    Endnote中文参考文献格式中华人民共和国国家标准GB/T7714-2015文后参考文献著录规则百度网盘https://pan.baidu.com/s/1I4kz1DjRw_aK7VjV1ytfdw提取码66sy

    2022年4月15日
    227
  • 【SpringBoot】1、创建第一个SpringBoot项目

    【SpringBoot】1、创建第一个SpringBoot项目创建SpringBoot项目可以通过两种方式,1、通过访问:https://start.spring.io/,SpringBoot的官方网站进行创建SpringBoot项目;2、通过工具(例如:Idea)创建SpringBoot项目。本次使用开发工具:Idea创建我的第一个SpringBoot项目。首先,打开我们的Idea开发工具选择CreateNewPoject(创建一个新的项目)…

    2022年10月13日
    4
  • Android telephony_android获取真实时间

    Android telephony_android获取真实时间做一波获取手机卡LET的信息操作。看了一波源码写出来的一些东西首先需要的一些权限(危险权限动态获取一下,之前的里面有):<uses-permissionandroid:name=”android.permission.INTERNET”/><uses-permissionandroid:name=”android.permission.ACCESS_WIFI_ST…

    2022年8月31日
    5

发表回复

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

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