Sort a linked list using insertion sort

创建一个新的链表,将旧链表的节点插入到正确的位置

package cn.edu.algorithm.huawei;

public class Solution {
public ListNode insertionSortList(ListNode head) {
//哑节点
ListNode dumy = new ListNode(Integer.MIN_VALUE);
ListNode cur = head;
ListNode pre = dumy;
while (cur != null) {
//保存当前节点下一个节点
ListNode next = cur.next;
pre = dumy;
//寻找当前节点正确位置的一个节点
while (pre.next != null && pre.next.val < cur.val) {
pre = pre.next;
}
//将当前节点加入新链表中
cur.next = pre.next;//指向插入位置后面的节点
ListNode test = cur.next; pre.next = cur;
//处理下一个节点
cur = next;
}
return dumy.next;
} public static void main(String[] args) {
ListNode head = new ListNode(2);
head.next = new ListNode(1);
Solution solution = new Solution();
ListNode list = solution.insertionSortList(head);
while (list != null) {
System.out.println(list.val);
list = list.next;
}
}
} class ListNode {
int val;
ListNode next; ListNode(int x) {
val = x;
next = null;
} @Override
public String toString() {
return val + "";
}
}

最新文章

  1. 【从零开始学BPM,Day5】报表配置及自定义功能页面开发
  2. 初次接触json...
  3. python计算文件的行数和读取某一行内容的实现方法
  4. Android中使用ListView实现分页刷新(线程休眠模拟)(滑动加载列表)
  5. Android Support v4、v7、v13的区别和应用场景
  6. centos6.5 设置静态ip地址
  7. kafka在zookeeper中的存储结构
  8. swift字典集合-备
  9. python3-day2(基本回顾)
  10. iOS多线程总结(二)NSOperation
  11. form表单样式
  12. maven 每次update后影响接口实现类的问题
  13. (不断更新)关于显著性检测的调研-Salient Object Detection: A Survey
  14. 上海市2019年公务员录用考试第一轮首批面试名单(A类)
  15. Pipenv和Python虚拟环境
  16. 基数排序的理解和实现(Java)
  17. R语言:读取数据
  18. September 13th 2017 Week 37th Wednesday
  19. Eclipse启动Tomcat错误:Several ports (8080, 8009) required by Tomcat v6.0 Server at localhost are already
  20. 巧用花生壳将局域网内的FTP和www服务器发布到互联网

热门文章

  1. 转: JS自定义事件的定义和触发(createEvent, dispatchEvent)
  2. NAND Flash中常用的纠错方式(ECC算法)
  3. 工具类_java 操作cookie
  4. css table 布局
  5. ThinkPHP 3 的输出
  6. php 接口示例
  7. cocos2dx CCControlSlider
  8. ListBox控件的操作与实现
  9. jquery表格可编辑修改表格里面的值,点击td变input无刷新更新表格
  10. (转)ios跳转到通用页面