Sort a linked list using insertion sort.

Example

Given 1->3->2->0->null, return 0->1->2->3->null.

思路也比较直接,insertion sort,要注意的就是操作linkedlist的一些问题

/*** Definition for ListNode.* public class ListNode {*     int val;*     ListNode next;*     ListNode(int val) {*         this.val = val;*         this.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 hereif(head == null || head.next == null)return head;ListNode fakehead = new ListNode(0);fakehead.next = head;ListNode prev = head;ListNode curr = head.next;while(curr != null){if(curr.val > prev.val){prev = curr;curr = curr.next;}else{ListNode p = fakehead;while(p != prev && p.next.val < curr.val)p = p.next;prev.next = curr.next;curr.next = p.next;p.next = curr;curr = prev.next;}}return fakehead.next;}
}

转载于:https://www.cnblogs.com/goblinengineer/p/5217197.html

lintcode-easy-Insertion Sort List相关推荐

  1. 173. Insertion Sort List【LintCode by java】

    Description Sort a linked list using insertion sort. Example Given 1->3->2->0->null, ret ...

  2. [Leetcode] Insertion Sort List

    Sort a linked list using insertion sort. 虽然算法很简单,但是链表操作起来实正是烦啊,特别要注意各种边界条件. 1 /** 2 * Definition for ...

  3. leetcode day2 -- Sort List Insertion Sort List

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

  4. [Leetcode]147. Insertion Sort List

    Sort a linked list using insertion sort. 链表的插入排序 思路,递归到链表尾,然后循环插入: 1 /** 2 * Definition for singly-l ...

  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. c++Insertion Sort插入排序的实现算法(附完整源码)

    C++Insertion Sort插入排序的实现算法 C++Insertion Sort插入排序的实现算法完整源码(定义,实现,main函数测试) C++Insertion Sort插入排序的实现算法 ...

  9. C语言插入排序Insertion Sort算法(附完整源码)

    插入排序Insertion Sort算法 插入排序Insertion Sort算法的完整源码(定义,实现,main函数测试) 插入排序Insertion Sort算法的完整源码(定义,实现,main函 ...

  10. C语言以递归实现插入排序Insertion Sort算法(附完整源码)

    以递归实现插入排序Insertion Sort算法 以递归实现插入排序Insertion Sort算法的完整源码(定义,实现,main函数测试) 以递归实现插入排序Insertion Sort算法的完 ...

最新文章

  1. [原创] Neo.Geo 视频帧浏览器开发日志
  2. 学生选课数据库SQL语句练习题——成绩表
  3. 小小树微博制作记录笔记(一)
  4. memchache的数据类型_memcache详解
  5. ansible 简单使用
  6. github (远端建立分支....配置见github 官网配置)
  7. 晶振噪声及杂散_石英晶体振荡器(简称晶振)介绍
  8. mysql 建表结构_MySQL学习系列之二——创建表及对表结构的基本操作
  9. Java代码格式化工具
  10. java jni 生成_利用javah技术生成jni接口的详细步骤 | 学步园
  11. 2017年上半年软件设计师考试真题及答案(上午+下午)免费
  12. leetcode寻找重复数
  13. c语言程序设计的删除函数,详解C语言中的rename()函数和remove()函数的使用方法
  14. 麻省理工大学公开课笔记:算法导论(二)——课程简介及算法分析
  15. android n进入分屏代码分析_Android分屏多窗口的实践代码
  16. RT-Thread的CPU使用率计算
  17. 64 SUSE 下GCC 4.8.2 编译的 skipping incompatible 问题
  18. 《C++入门经典(第4版)》之C++编程总结
  19. kurento 6.14.0文档翻译第九章 编写Kurento应用程序
  20. C语言 16进制字符串转16进制数组 函数示例

热门文章

  1. eclipse断点调试 出现Source not found
  2. linux 下 Nginx 0.8.40的安装
  3. shell脚本将本地docker镜像push到阿里云镜像仓库
  4. 代码质量与规范,那些年你欠下的技术债
  5. Access update的时候传递参数的顺序
  6. springMVC - 之拦截器
  7. 《神探tcpdump第四招》-linux命令五分钟系列之三十八
  8. 进程内COM与进程外COM
  9. android技术下载
  10. 2011寒假-joomla学习笔记