leetcode4:sort-list
2024-09-07 21:45:43
题目描述
在O(n log n)的时间内使用常数级空间复杂度对链表进行排序。
Sort a linked list in O(n log n) time using constant space complexity.
示例1
输出
{2,3,4}
class Solution { public : ListNode* findMiddle(ListNode* head){ ListNode* chaser = head; ListNode* runner = head->next; while (runner != NULL && runner->next != NULL){ chaser = chaser->next; runner = runner->next->next; } return chaser; } ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { if (l1 == NULL){ return l2; } if (l2 == NULL){ return l1; } ListNode* dummy = new ListNode(0); ListNode* head = dummy; while (l1 != NULL && l2 != NULL){ if (l1->val > l2->val){ head->next = l2; l2 = l2->next; } else { head->next = l1; l1 = l1->next; } head = head->next; } if (l1 == NULL){ head ->next = l2; } if (l2 == NULL){ head->next = l1; } return dummy->next; } ListNode* sortList(ListNode* head) { if (head == NULL || head ->next == NULL){ return head; } ListNode* middle = findMiddle(head); ListNode* right = sortList(middle->next); middle -> next = NULL; ListNode* left = sortList(head); return mergeTwoLists(left, right); } }; |
最新文章
- CodeForces 515C. Drazil and Factorial
- Windows Server+AMD GPU+HDMI时_黑边_不铺满问题的解决办法
- Swift3.0语言教程字符串大小写转化
- python中threading模块详解(一)
- 在Android Studio中使用shareSDK进行社会化分享(图文教程)
- Bootstrap3.0学习第十三轮(导航条)
- Ubuntu下中文显示乱码
- 解决:Eclipse调试的时候报错'Launching XXX' has encountered a problem. Cannot connect to VM.
- Javascript this 解析
- Initializer block.
- 温习H3C S5500的VLAN配置
- flvplayer.swf flv视频播放器使用方法
- Netbeans搭建Android环境
- ES 6 : 字符串的扩展
- 收藏清单: python测试框架最全资源汇总
- nginx+keepalived高可用及双主模式
- Python学习笔记-数字类型
- A Bug's Life(向量偏移)
- 【Spring学习笔记-MVC-15】Spring MVC之异常处理
- oracle杀掉执行的死循环存储过程
热门文章
- 实时,异步网页使用jTable, SignalR和ASP。NET MVC
- 搭建go-stress-testing压力测试
- MySQL - 常用三种数据库存储引擎
- Struts2 学习记录-第一天
- Flask之WTF
- C/C++编程日记:用C语言实现的简单Web服务器(Linux),全代码分享!
- centos8安装RabbitMQ
- centos8安装fastdfs6.06集群方式一之:软件下载与安装
- gti 常用命令
- 说明资源路径位置类型无法解析The type javax.servlet.http.HttpServletResponse cannot be resolved.