leetcode_148_Sort List
来源:互联网 发布:适合les质量好淘宝店 编辑:程序博客网 时间:2024/05/13 20:18
欢迎大家阅读参考,如有错误或疑问请留言纠正,谢谢
Sort List
Sort a linked list in O(n log n) time using constant space complexity.
// 归并排序法:在动手之前一直觉得空间复杂度为常量不太可能,因为原来使用归并时,都是 O(N)的,需要复制出相等的空间来进行赋值归并。对于链表,实际上是可以实现常数空间占用的。
class Solution {public: ListNode *sortList(ListNode *head) { if(!head||!head->next) return head; return mergeSort(head); } ListNode * mergeSort(ListNode *head){ if(!head||!head->next) //just one element return head; ListNode *p=head, *q=head, *pre=NULL; while(q&&q->next!=NULL){ q=q->next->next; pre=p; p=p->next; //divide into two parts } pre->next=NULL; ListNode *lhalf=mergeSort(head); ListNode *rhalf=mergeSort(p); //recursive return merge(lhalf, rhalf); //merge } ListNode * merge(ListNode *lh, ListNode *rh){ ListNode *temp=new ListNode(0); ListNode *p=temp; while(lh&&rh){ if(lh->val<=rh->val){ p->next=lh; lh=lh->next; } else{ p->next=rh; rh=rh->next; } p=p->next; } if(!lh) p->next=rh; else p->next=lh; p=temp->next; temp->next=NULL; delete temp; return p; }};
1 0
- leetcode_148_Sort List
- List
- list
- List
- LIST
- list
- list
- List
- list
- list
- List
- list
- LIST
- List
- List
- List
- list
- list
- leetcode_2_Add Two Numbers
- hdu 2059 龟兔赛跑(DP)
- kindeditor4.1.10在线HTML编辑器,论坛编辑器
- AC自动机题集
- jsp问题(仅仅是菜鸟级别的个人学习小结)
- leetcode_148_Sort List
- 杭电1004
- Java泛型文章
- iOS 不同屏幕的分辨率及判断尺寸的宏
- C++ 派生类的构造函数和析构函数
- 笔记本硬盘接口
- ofbiz开发前序工作之--工欲善其事必先利其器(二)
- since today 开始我的博客之旅! @feastwin
- 支付宝无限抢红包工具-速度来领!