Sort a linked list using insertion sort.

代码如下:

 /**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
public class Solution {
public ListNode insertionSortList(ListNode head) {
if(head==null||head.next==null)
return head; ListNode pre=head;
ListNode q=head.next;
ListNode p=head;
while(q!=null)
{ if(q.val<=head.val)
{
pre.next=q.next;
q.next=head;
head=q;
if(pre.next==null)
break;
else q=pre.next;
p=head;
}
else
if(q.val>=p.val&&q.val<p.next.val)
{
pre.next=q.next;
q.next=p.next;
p.next=q;
if(pre.next==null)
break;
else q=pre.next;
p=head;
}
else if(q.val>=p.val&&q.val>p.next.val)
{ p=p.next;
}
else if(q.val==p.next.val&&p.next!=q)//用于有重复元素时的排序
{p=p.next;}
else {
p=head;
pre=pre.next;
q=pre.next;
}
ListNode c=head; } return head;
} }

最新文章

  1. 对于多个数据库表对应一个Model问题的思考
  2. Android原生游戏开发:使用JustWeEngine开发微信打飞机
  3. MFC程序中使用调试宏ASSERT()、ASSERT_VALID()、VERIFY()和TRACE()的区别
  4. mvc-1
  5. MemSQL分布式架构介绍(二)
  6. [Effective JavaScript 笔记] 第6条:了解分号插入的局限
  7. Python 时间 日期常见操作
  8. FR报表 自动缩小的代码
  9. Java并发控制机制详解
  10. eclipse颜色配置
  11. HTTPConnection与HTTPClient的区别
  12. zoj 1622 Switch 开关灯 简单枚举
  13. Udacity调试课笔记之断言异常
  14. CodeForces 25E Test KMP
  15. Intel 80x86 寻址模式
  16. 使用htmlparse爬虫技术爬取电影网页的全部下载链接
  17. PHP扩展安装方法
  18. 开源IM项目-InChat登录接口设计与实现(基于Netty)
  19. Microsoft Speaker Recognition API
  20. 关于SQL 导出脚本失败 及SQL 的重装

热门文章

  1. EntityFramework之创建数据库及基本操作(一)
  2. 为ASP.NET MVC应用添加自定义路由
  3. RM报表 文本框 自动换行 相关代码
  4. C++-函数模板特化如何避免重复定义
  5. MSP430G2553之timerA产生PWM
  6. operation not possible due to RF-kill
  7. Eclipse中一些快捷键
  8. unity3d基础01
  9. 走进科学之WAF(Web Appllication Firewall)篇
  10. 加载JS