java如何实现排序链表
发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,这篇文章将为大家详细讲解有关java如何实现排序链表,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进
千家信息网最后更新 2025年12月04日java如何实现排序链表
这篇文章将为大家详细讲解有关java如何实现排序链表,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。
示例 1:
输入: 4->2->1->3
输出: 1->2->3->4示例 2:
输入: -1->5->3->4->0
输出: -1->0->3->4->5答案:
1public ListNode sortList(ListNode head) {
2 if (head == null || head.next == null)
3 return head;
4 // 把链表分为两部分
5 ListNode prev = null, slow = head, fast = head;
6 while (fast != null && fast.next != null) {
7 prev = slow;
8 slow = slow.next;
9 fast = fast.next.next;
10 }
11 prev.next = null;
12 // 分别排序这两部分
13 ListNode l1 = sortList(head);
14 ListNode l2 = sortList(slow);
15 // 然后再合并
16 return merge(l1, l2);
17}
18
19ListNode merge(ListNode l1, ListNode l2) {
20 ListNode l = new ListNode(0), p = l;
21 while (l1 != null && l2 != null) {
22 if (l1.val < l2.val) {
23 p.next = l1;
24 l1 = l1.next;
25 } else {
26 p.next = l2;
27 l2 = l2.next;
28 }
29 p = p.next;
30 }
31 if (l1 != null)
32 p.next = l1;
33 if (l2 != null)
34 p.next = l2;
35 return l.next;
36}
关于"java如何实现排序链表"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
排序
篇文章
复杂
复杂度
更多
示例
部分
输入
输出
不错
实用
内容
常数
文章
时间
知识
空间
答案
参考
帮助
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库系统实现试读
如何分析麻醉数据库
武装突袭怎么建立服务器
网络安全法题目和答案
邵阳非赖网络技术有限公司
ug 输入服务器名
c mfc 上位机软件开发
选计算机网络技术的月薪
沈阳软件开发招聘吗
开源服务器密码管理
数据库辅助数据文件
浙江安卓软件开发如何收费
卢龙app软件开发公司
华为服务器管理nvme
网络安全管理精品案例
数据库如何为表重命名
pcs7服务器是做什么的
网络技术在深部开拓中的应用
江苏软件开发标准
有机分子生物活性数据库
紫光展锐通信软件开发工程师
山东系统软件开发靠谱吗
17年国家网络安全周主题
营口新零售软件开发哪家好
方正宽带用什么服务器
小米9小白续航数据库
网络安全人才的计划
学校网络安全日志管理制度
a股网络安全还能涨吗
有机分子生物活性数据库