用插入排序对链表进行排序。

详见:https://leetcode.com/problems/insertion-sort-list/description/

Java实现:

链表的插入排序实现原理很简单,就是一个元素一个元素的从原链表中取出来,然后按顺序插入到新链表中,时间复杂度为O(n2),是一种效率并不是很高的算法,但是空间复杂度为O(1),以高时间复杂度换取了低空间复杂度。

/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode insertionSortList(ListNode head) {
ListNode helper=new ListNode(-1);
ListNode cur=helper;
while(head!=null){
ListNode next=head.next;
cur=helper;
while(cur.next!=null&&cur.next.val<=head.val){
cur=cur.next;
}
head.next=cur.next;
cur.next=head;
head=next;
}
return helper.next;
}
}

最新文章

  1. Oracle 11g静默安装软件+手工创建数据库
  2. asp.net mvc引用控制台应用程序exe
  3. CentOS 安装rz和sz命令
  4. 用sql 语句给字段添加描述
  5. IOS第13天(3,私人通讯录,登陆状态数据存储,数据缓存, cell的滑动删除,进入编辑模式,单个位置刷新 )
  6. mysql索引的使用[上]
  7. Selenium2学习-026-WebUI自动化实战实例-024-获取页面元素
  8. C#访问PostGreSQL数据库的方法 http://www.jb51.net/article/35643.htm
  9. HTTP Live Streaming直播(iOS直播)技术分析与实现
  10. Oracle 体系结构2 - 共享和专用服务器
  11. JAVAMAIL手动发送邮件
  12. Bootstrap--组件之按钮组
  13. js学习--浏览器对象计时器setInterval()与setTimeout()的使用与区别
  14. jvm 配置,看看
  15. 201521123022 《Java程序设计》 第四周学习总结
  16. Python爬虫下载美女图片(不同网站不同方法)
  17. Python爬虫之模拟登录微信wechat
  18. overflow-x后覆盖滚动条
  19. cocos2d-x初探
  20. 《java入门第一季》之StringBuffer小案例

热门文章

  1. DTD复习笔记(复习资料为菜鸟教程里的DTD教程)
  2. 如何去除Office Excel的密码保护?
  3. Ghost wenjian目录
  4. C# XML序列化与反序列化与XML格式详解
  5. 谈谈Paxos一致性算法和一致性这个名词
  6. 通过mysqldumpslow来分析日志
  7. html5--6-10 CSS选择器7--伪类选择器
  8. Tomcat 系统架构与设计模式之一
  9. 理解 Android MVP 开发模式
  10. HihoCoder1084: 扩展KMP(二分+hash,求T串中S串的数量,可以失配一定次数)