Sort List 归并排序链表
来源:互联网 发布:查看淘宝关键词排名 编辑:程序博客网 时间:2024/06/10 01:39
Sort List
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; ListNode *mid=getMid(head); ListNode *next=mid->next; mid->next=NULL; return merge(sortList(head),sortList(next)); } ListNode *getMid(ListNode *head) { ListNode *slow=head; ListNode *fast=head; while(fast->next!=NULL&&fast->next->next!=NULL) { slow=slow->next; fast=fast->next->next; } return slow; } ListNode *merge(ListNode *a,ListNode *b) { ListNode *help=new ListNode(0); ListNode *cur=help; 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; } cur->next=(a!=NULL)?a:b; return help->next; }};
0 0
- Leetcode Sort List 链表归并排序
- Sort List 归并排序链表
- 148. Sort List 链表归并排序
- 归并排序---Sort List
- Sort List——链表的快速/归并排序
- 链表的二路归并排序 Sort List
- leetcode:Sort List(链表的归并排序)
- [C++]LeetCode: 125 Sort List (归并排序链表)
- LeetCode Sort List 链表的归并排序
- 148 Sort List (归并实现链表排序)
- leetcode 148. Sort List 链表归并排序
- sort list leetcode (归并排序)
- 【LeetCode】Sort List 解题报告(对链表进行归并排序)
- 链表的归并排序 特殊优化, merge sort for list,非快慢指针法
- 148. Sort List(链表的归并排序,用快慢指针来partition)
- Leetcode:Sort List 对单链表归并排序
- 【leetcode 单链表归并排序】Sort List
- 【LeetCode】 sort list 单链表的归并排序
- Insertion Sort List 链表的插入排序
- startActivityForResult 参数限制
- android中搜索关键字高亮
- leetcode-Contains Duplicate,STL unique,unique_copy等函数的使用
- 常用音频协议介绍
- Sort List 归并排序链表
- CSDN学院下单用户专属福利来袭,你还不快来?
- 开发中遇到的问题(2015-05-27)
- ubuntu opencv unufree SIFT算子使用方法
- Android实现微信开放平台、易信平台分享(好友及朋友圈)
- bisection method demo
- memcached分析
- 利用 tweet 工具进行英文分词
- Reverse Words in a String 翻转句子的单词