Sort a linked list using insertion sort.

PS:需要考虑left为head且只有一个数时,此时left->==NULL,若right<left则应更新left。

比较p->next->val与right->val以此来避免需要记录preNode

 1 /**
 2  * Definition for singly-linked list.
 3  * struct ListNode {
 4  *     int val;
 5  *     ListNode *next;
 6  *     ListNode(int x) : val(x), next(NULL) {}
 7  * };
 8  */
 9 class Solution {
10 public:
11     ListNode *insertionSortList(ListNode *head) {
12         ListNode *left=NULL,*right=head;
13         if(head==NULL)
14             return head;
15         left=head;
16         right=head->next;
17         left->next=NULL;
18
19         while(right!=NULL){
20             ListNode *p=left;
21             ListNode *cur=right;
22
23             while(p!=NULL&&p->next!=NULL&&p->next->val<right->val)
24                 p=p->next;
25             right=right->next;
26             if(p->val<=cur->val){
27                 cur->next=p->next;
28                 p->next=cur;
29             }else{
30                 cur->next=p;
31                 left=cur;
32             }
33
34
35         }
36         return left;
37     }
38 };

转载于:https://www.cnblogs.com/zl1991/p/6957756.html

insertion-sort-list——链表、插入排序、链表插入相关推荐

  1. Insertion Sort List(单链表插入排序)

    来源:https://leetcode.com/problems/insertion-sort-list Sort a linked list using insertion sort. 方法: 1. ...

  2. c语言 静态链表插入排序,数据结构 - 表插入排序 具体解释 及 代码(C++)

    表插入排序 具体解释 及 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy/article/details/24323125 表插入排序(List I ...

  3. [转载] python实现基本算法之插入排序(Insertion Sort)

    参考链接: Python中的插入排序insertion sort 基本算法之插入排序(Insertion Sort) 基本算法-02.插入排序(Insertion Sort)算法 冒泡排序已经发布,大 ...

  4. leetcode day2 -- Sort List Insertion Sort List

    1.Sort List Sort a linked list in O(n log n) time using constant space complexity. 分析:对链表排序不是第一次见,但是 ...

  5. LeetCode 147. Insertion Sort List 链表插入排序 C++/Java

    LeetCode 147. Insertion Sort List 链表插入排序 C++/Java Sort a linked list using insertion sort. A graphic ...

  6. Java实现插入排序及其优化 insertion sort

    本文带来八大排序算法之插入排序. 插入排序(Insertion Sort)属于内部排序算法,是对于欲排序的元素以插入的方式找寻该元素的适当位置,以达到排序的目的. 插入排序基本思想: 把n个待排序的元 ...

  7. python实现排序算法_python实现·十大排序算法之插入排序(Insertion Sort)

    简介 插入排序(Insertion Sort)是一种简单直观的排序算法.它的工作原理是:通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入. 算法实现步骤 从第一个元素开 ...

  8. 建立单链表 单链表的插入_单链列表插入

    建立单链表 单链表的插入 All possible cases: 所有可能的情况: Inserting at beginning 开始插入 Inserting at the ending 在末尾插入 ...

  9. python sort 逆序_python实现·十大排序算法之插入排序(Insertion Sort)

    简介 插入排序(Insertion Sort)是一种简单直观的排序算法.它的工作原理是:通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入. 算法实现步骤 从第一个元素开 ...

  10. python链表节点的插入p.next curnode_leetcode刷题总结之链表

    前言: 2020/1/14:今年过年前的任务就是回顾之前的刷过题,然后弄清以前没有弄懂的知识点,最后归纳整理形成自己的体系.因为"学而不思则罔,思而不学则殆",在比赛或者面试做题时 ...

最新文章

  1. sqlplus可以连接plsql连接不上_为什么有的iPhone/iPad连接不上电脑?
  2. Linux Kernel中spinlock的设计与实现
  3. java五大原则_Java成长第五集--面向对象设计的五大原则
  4. c语言字符密码验证码,c语言下的学生管理系统(含密码加密和验证码).docx
  5. linux xlib函数手册,Xlib 学习笔记
  6. docker 安装mysql_docker|docker安装mysql数据库
  7. SQL Server2008数据库用户管理 (第三部分)
  8. 安装Samba服务器
  9. abaqus结构工程分析及实例详解pdf_“结构非线性、材料拟合、冲击碰撞、钣金/金属成形、顺序耦合、多物理场、有/非参优化”专题...
  10. linq 清除一条数据中的某个字段值_利用Postman中Tests断言校验返回结果
  11. 微信公众号教程(16)公司通讯录开发 终
  12. 生产计划管理系统实现生产计划流程完美结合
  13. 苹果手机屏幕助手_同时适用于安卓和苹果的手机助手工具--Anvsoft Syncios
  14. NETSDK1045 当前 .NET SDK 不支持将 .NET 6.0 设置为目标。请将 .NET 5.0 或更低
  15. JAVA 115个面试题及个人部分衍生疑问?
  16. Typora配置smms图床
  17. Android 4.0 SDK新特性
  18. 【WordPress报错】cURL error 52: Empty reply from server(http_request_failed)
  19. unity 等待...动画_介绍Unity 2019.1的动画索具预览包
  20. 58同城疑收购优信二手车:优势增补布局未来市场

热门文章

  1. 深度学习(四十五)条件对抗网络
  2. java属于以下哪种语言_Java属于以下哪种语言?
  3. 哎呀你不要把他叫出来_不吼不叫,学会这3个亲子互动方法,孩子不专注都难...
  4. java 内存分析 ibm_IBM内存检测工具(IBM Thread and Monitor Dump Analyzer for Java)
  5. 软考网络管理员学习笔记8之第八章网络安全技术
  6. go语言结构体作为函数参数,采用的是值传递
  7. BZOJ 2244 [SDOI2011]拦截导弹 (三维偏序CDQ+线段树)
  8. 【BZOJ 1801】【AHOI 2009】中国象棋(递推DP)
  9. 中断、轮询、事件驱动、消息驱动、数据流驱动(Flow-Driven)?
  10. CentOS下搭建DNS服务器