sort-list
来源:互联网 发布:网络信用卡怎么申请 编辑:程序博客网 时间:2024/06/03 22:08
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 *p = head; ListNode *q = head->next; while(q!=NULL && q->next!=NULL){ p = p->next; q = q->next->next; } ListNode *right = sortList(p->next); p->next = NULL;//把链表从中间截断 ListNode *left = sortList(head); //上面递归调用,到这里的时候左右链表都只剩一个值 return merge(left,right); } ListNode *merge(ListNode *left,ListNode *right){ ListNode dummy(0); ListNode *tmp = &dummy; while(left && right){ if(left->val < right->val){ tmp->next = left; left = left->next; } else{ tmp->next = right; right = right->next; } tmp = tmp->next; } if(left!=NULL) tmp->next = left; if(right!=NULL) tmp->next = right; return dummy.next; }};
阅读全文
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
- RDD内部转换详解
- 第九课和第十课 构造与析构
- 轻松学,Java 中的代理模式及动态代理
- sql 中的concat()函数及JAVA时间类在Hibernate中的映射
- iOS正则表达式判断手机号和密码
- sort-list
- xuenhao(banner xlisview)
- [Leetcode 621] Task Scheduler
- 177.Nth_Highest_Salary
- ActiveMQ讯息传送机制以及ACK机制
- 官方教程survivalshooter 关于animator的灵异性bug
- 生成柱面层和踢脚面
- Adobe AE CC切换语言 中英文切换
- 动态内存分配