Sort List
来源:互联网 发布:linux环境安装jmeter 编辑:程序博客网 时间:2024/05/17 18:48
Sort List
Sort a linked list in O(n log n) time using constant space complexity.
题目来自leetcode:https://leetcode.com/problems/sort-list/
解:
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode * merge(ListNode * l1, ListNode * l2) { ListNode * ret; if(l1->val<l2->val) { ret=l1; l1=l1->next; } else { ret=l2; l2=l2->next; } ListNode * tail=ret; while(l1 && l2) { if(l1->val<l2->val) { tail->next=l1; tail=l1;//开始忘记了这一句,低级失误 l1=l1->next; } else { tail->next=l2; tail=l2; l2=l2->next; } } tail->next= l1 ? l1 : l2; return ret; } ListNode* sortList(ListNode* head) {//本题思想:归并排序,通过快慢指针实现中间节点的查询,将链表分成两个子链表 if(head==NULL || head->next==NULL) return head; ListNode * slow=head; ListNode * quik=head; while(quik->next && quik->next->next) { slow=slow->next; quik=quik->next->next; } quik=slow->next;//包含只有两个元素的情况 slow->next=NULL; ListNode * l1=sortList(head); ListNode * l2=sortList(quik); ListNode * ret=merge(l1, l2); return ret; }};
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++编程思想》 第十章 引用和拷贝构造函数(原书代码+知识点+习题+解答)
- jarsigner: 无法打开 jar 文件
- 简单登陆页面的创建(页面跳转.键盘回收.实现换行.清除textField中的文字)
- 关于三星某些系列笔记本电脑无法安装Windows10的原因及解决办法
- 设计模式 迪米特法则
- Sort List
- poj-1860 Currency Exchange
- 数据挖掘算法——ID3(决策树)
- HTML5 respond.js 解决IE6~8的响应式布局问题
- 用中国视角解读早期希腊哲学
- 机器学习算法总结(目录框架)
- HDU 1312 Red and Black【递归】
- java基础-常用API
- 风