描述

用插入排序对链表排序

样例

样例 1:输入: 0->null输出: 0->null样例 2:输入:  1->3->2->0->null输出 :0->1->2->3->null

代码部分

/*** Definition for ListNode* public class ListNode {*     int val;*     ListNode next;*     ListNode(int x) {*         val = x;*         next = null;*     }* }*/public class Solution {/*** @param head: The first node of linked list.* @return: The head of linked list.*/public ListNode insertionSortList(ListNode head) {// write your code here// 这个dummy的作用是,把head开头的链表一个个的插入到dummy开头的链表里// 所以这里不需要dummy.next = head;ListNode dummy=new ListNode(0);//head遍历当前链表元素while(head!=null){ListNode hnext=head.next;//next指向head的后一个元素//node满足node.val<head.val && node.next.val>=head.val//使得head可插入在node节点之后一个元素ListNode node=dummy;while(node.next!=null&&node.next.val<head.val)node=node.next;//将当前head元素添加进dummy链表,也就是插入node之后head.next=node.next;node.next=head;//继续考察下一个head元素head=hnext;}return dummy.next;}
}

补充说明

创建一个dummy链表,从head链表中依次向dummy链表中按插入排序规则添加节点。

下图中原链表其实是不用删除,只需要向后遍历即可,即图中原链表的头节点对应head节点。

每次dummy节点都需要遍历到最后一个小于head节点的值位置,这样head节点插入进来就保持了排序

LintCode 173:链表插入排序相关推荐

  1. lintcode :链表插入排序

    题目: 链表插入排序 用插入排序对链表排序 样例 Given 1->3->2->0->null, return 0->1->2->3->null 解题: ...

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

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

  3. 6-4 单链表插入排序 (15分)

    6-4 单链表插入排序 (15分) 单链表插入排序 ###目的: 掌握单链表的应用和插入排序的思想. ###内容: 编写一个函数insertion_sort,对一个无序单链表采用插入排序的方式,将其按 ...

  4. c语言 静态链表插入排序,数据结构C语言版 表插入排序

    西门豹治邺奇计 数据结构C语言版 表插入排序.txt两个人吵架,先说对不起的人,并不是认输了,并不是原谅了.他只是比对方更珍惜这份感情./* 数据结构C语言版 表插入排序 算法10.3 P267-P2 ...

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

    题意:给出一个未排序好的单链表,用插入排序来实现排序 代码如下: class Solution {public ListNode insertionSortList(ListNode head){if ...

  6. LintCode_173 链表插入排序

    题目 用插入排序对链表排序 样例 Given 1->3->2->0->null, return 0->1->2->3->null C++代码 ListN ...

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

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

  8. Lintcode 167. 链表求和 221. 链表求和 II 题解

    167. 链表求和 描述 你有两个用链表代表的整数,其中每个节点包含一个数字.数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头.写出一个函数将两个整数相加,用链表形式返回和. 样例 给 ...

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

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

最新文章

  1. 使用cURL执行HTTP请求(使用PROXY)
  2. 几款优秀的jQuery 插件
  3. 【JUC并发编程05】集合的线程安全
  4. Python 内置方法和属性应用:反射和单例
  5. jsp头文件的内容/response.setHeader
  6. java hibernate 分页查询_4 Hibernate HQL查询,分页查询
  7. AWS:启动安装了APOC的Neo4j实例
  8. 网络操作系统 第七章 管理TCP/IP网络
  9. 直播地址公布|第八届“数学、计算机与生命科学交叉研究” 青年学者论坛--特别云论坛...
  10. ZooKeeper(一)linux上单机与集群的搭建
  11. python 判断线程状态_Python 线程和进程
  12. netstat命令常见用法
  13. pandas中size方法_eplot,在pandas中流畅的使用pyecharts!
  14. 作业报告封面模版(物联20级)
  15. hdu4565(矩阵快速幂)
  16. Windows 10系统下Outlook日历怎么显示农历?
  17. 利用亚马逊云免费搭建服务器的踩坑之旅-创建你的实例
  18. Web 开发最有用的50款 jQuery 插件集锦——《图片特效篇》
  19. 如何使用Lumberyard制作特效[【1】——Overview
  20. DHCP 和 DHCP-Realy 功能演示完整示例

热门文章

  1. pdf转换成jpg转换器的使用方法
  2. NVME NSSR (Nvme Sub System Reset)
  3. 若语句char a = ‘\72‘; 则变量a包含几个字符?‘\72‘是否在ASCII值的范围之内?
  4. Python基础教程之Matplotlib-基础绘图
  5. 电脑数据没有了怎么恢复?笔记本电脑数据丢失怎样恢复
  6. 2021邵阳市区三中高考成绩查询,2021年邵阳市普通高考科目及各科分数
  7. 阿里大数据之路 总述
  8. 庆祝祖国60岁生日!
  9. Storj:A Peer-to-Peer Cloud Storage Network(点对点云存储网络)
  10. 模型动态测试工具 TPT 18更多新特性——HiL测试、需求管理