sort-list
来源:互联网 发布:apache 允许目录列表 编辑:程序博客网 时间:2024/05/23 23:10
题目描述
Sort a linked list in O(n log n) time using constant space complexity.
使用归并排序,严格来说空间复杂度并不是常量,因为用到了栈,但是好像大多数人都是利用归并排序的,姑且这么写吧。比较简单。
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *sortList(ListNode *head) { if(head==NULL||head->next==NULL) return head; return recursort(head); } ListNode *recursort(ListNode *head) { if(head==NULL ||head->next==NULL) return head; ListNode* fast=head; ListNode* slow=head; while(fast!=NULL&&fast->next!=NULL&&fast->next->next!=NULL) { fast=fast->next->next; slow=slow->next; } ListNode* left=head; ListNode* right=slow->next; slow->next=NULL; ListNode* ln=recursort(left); ListNode* rn=recursort(right); ListNode* res=new ListNode(0); //借用临时变量 ListNode* tres=res; while(ln!=NULL&&rn!=NULL) { if(ln->val<rn->val){ tres->next=ln; tres=tres->next; ln=ln->next; } else{ tres->next=rn; tres=tres->next; rn=rn->next; } } if(!ln) tres->next=rn; else tres->next=ln; ListNode* temp=res->next; delete res; //注意释放空间 res=NULL; return temp; }};
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
- 【C++】队列容器 头文件 #include<queue> 解读
- Spark学习00---介绍及安装配置
- java多线程之线程运行状态
- protobuf在linux环境下c代码生成及测试
- Android 触摸事件分发和拦截机制
- sort-list
- php7新特性及升级
- @Controller注解
- Blender常用快捷键
- Activity启动方式
- Mysql数据库sql_mode模式
- webapi的post和get请求总结
- [BZOJ1853][Scoi2010]幸运数字(容斥原理)
- Car的旅行路线 codevs1041 最短路