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