Sort List
来源:互联网 发布:碧然德滤水壶 asa 知乎 编辑:程序博客网 时间:2024/05/22 15:53
Sort a linked list in O(n log n) time using constant space complexity.
单链表排序,要求O(nlogn),使用归并
class Solution {public: //归并 ListNode * MergeList(ListNode * a ,ListNode * b) { ListNode pre(-1); ListNode * cur = ⪯ while(a!=NULL && b!=NULL) { if(a->val < b->val){ cur->next = a; a = a->next; }else{ cur->next = b; b = b->next; } cur = cur -> next; } if(a!=NULL) cur->next = a; if (b!=NULL) cur->next = b; return pre.next; } //分割链表 void SplitList(ListNode * head,ListNode * & l , ListNode* & r) { ListNode pre(-1); pre.next = head; if(head==NULL || head->next ==NULL) { l = head; r = NULL; } else { ListNode * mid = &pre,*tail=⪯ while(tail) { tail = tail->next; if(tail) { tail = tail->next; mid = mid->next; } } r = mid->next; mid->next = NULL; l = head; } } ListNode *sortList(ListNode *head) { if(head == NULL || head->next==NULL) { return head; } ListNode * l = NULL,*r = NULL; SplitList(head,l,r); l = sortList(l); r = sortList(r); return MergeList(l,r); }};
0 0
- list sort
- list sort
- Sort List
- Sort List
- list - sort
- Sort List
- Sort List
- Sort List
- Sort List
- Sort List
- Sort List
- Sort List
- Sort List
- Sort List
- Sort List
- Sort List
- Sort List
- Sort List
- JS 简单的轮播特效示例
- ActivityGroup
- Java命令行编译和运行的错误解决--classpath
- 双链表解决Josephus问题
- 用java实现简单的连连看小游戏~~
- Sort List
- Git忽略文件
- 兼容placeholder
- 在vs2012中使用sprintf等函数方法
- Android Intent.FLAG_NEW_TASK详解,包括其他的标记的一些解释
- 规范化的的天然让他替她
- POJ 3469(Dual Core CPU-最小割)[Template:网络流dinic V2]
- 第一篇博客
- Atitit.软件控件and仪表盘(23)--多媒体子系统--视频输出切换控制cvbs av s-video Ypbpr pal ntsc