博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【链表】链表排序
阅读量:4095 次
发布时间:2019-05-25

本文共 1505 字,大约阅读时间需要 5 分钟。

一、题目

力扣原题:

二、归并排序

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } */class Solution {    public ListNode sortList(ListNode head) {        if (null == head) {            return null;        }        return split(head);    }    private ListNode split(ListNode node) {        if (null == node || null == node.next) {            return node;        }        // 双指针,标记链表中点        ListNode slow = node;        ListNode fast = node.next;        while (null != fast && null != fast.next) {            slow = slow.next;            fast = fast.next.next;        }        // 链表分割        ListNode pre = node;        ListNode post = slow.next;        slow.next = null;        // 递归分割        ListNode left = split(pre);        ListNode right = split(post);        return merge(left, right);    }    private ListNode merge(ListNode pre, ListNode post) {        ListNode node = new ListNode(-1);        ListNode cur = node;        while (null != pre && null != post) {            if (pre.val <= post.val) {                cur.next = new ListNode(pre.val);                pre = pre.next;            } else {                cur.next = new ListNode(post.val);                post = post.next;            }            cur = cur.next;        }        if (null != pre) {            cur.next = pre;        }        if (null != post) {            cur.next = post;        }        return node.next;    }}
  • 时间复杂度:O(nlog(n))
  • 空间复杂度:O(log(n))

转载地址:http://jnaii.baihongyu.com/

你可能感兴趣的文章
h5 input 阴影_移动端HTML5 input常见问题(小结)
查看>>
scope system来依赖_maven中pom.xml中的scope讲解
查看>>
antd 实现pdf 预览_使用react-pdf-js插件实现pdf文件预览(canvas)及打印,指定区域打印时出现空白怎么弄?...
查看>>
wincc python_3分钟学会,2种Wincc v14多语言组态,实现工控屏语言切换
查看>>
.class文件转换.java_一文初步了解Java虚拟机
查看>>
curlopt_ssl_verifypeer后https还是验证不过_10个湿热灭菌验证难题,这里给出答案
查看>>
7添加静态路由 hat red_路由器怎么设置静态IP 路由器设置静态IP方法【详解】
查看>>
ubuntu20 隐藏 顶部_如何在 Ubuntu 20.04 上禁用坞站(dock) | Linux 中国
查看>>
地图围栏 小程序_地图搜租房小程序不讲道理Hotfix...
查看>>
卡尔曼滤波以后再经过低通滤波器_有机肥养花,要经过发酵腐熟,忌用“生肥”,不然容易烧根...
查看>>
4p营销组合策略案例_IP体验至上,迪士尼营销组合策略
查看>>
cmder添加到系统变量中_Cmder进阶配置
查看>>
cam350 不能打开光绘文件_电脑上别乱清理了!删完这3类文件夹电脑可就相当于报废了...
查看>>
c# cs结构教程_C#学习路线(看完不惑系列)
查看>>
打印每一页顶部跟底部_Excel – 如何让打印的每一页表格都包含表头?
查看>>
8s存储最佳方案_重磅!容器存储解决方案蓝皮书发布
查看>>
门锁了开不了_小报:捷达VS5儿童锁?后门怎么锁?怎么开?怎么用? 第191224期...
查看>>
两数相处应该注意_双子座的人注意了,如果选择这三大星座在一起,会感觉很煎熬!...
查看>>
前端编码规约_大型前端项目可持续演进开发的思考
查看>>
反馈清零法和反馈置数法怎么区别_任意进制计数器 || 反馈复位法 反馈置数法 || 超级重点 || 数电...
查看>>