【归并排序+递归】LeetCode 148. Sort List
LeetCode 148. Sort List
Solution1:我的答案
很多递归
/*** 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) return NULL;if (!head->next) return head;ListNode *slow = head, *fast = head;while (fast->next && fast->next->next) {//快慢指针找链表中点slow = slow->next;fast = fast->next->next;}fast = slow->next;//fast重新定义为第二段链表的起点slow->next = NULL;//两条链表断开ListNode *l1 = sortList(head);ListNode *l2 = sortList(fast);return mergetwolists(l1, l2);}ListNode* mergetwolists (ListNode* l1, ListNode* l2) {//合并两个有序链表的代码重用度很高啊if (!l1) return l2;if (!l2) return l1;ListNode *dummy = new ListNode(-1), *cur = dummy;while (l1 && l2) {if (l1->val <= l2->val) {cur->next = l1;l1 = l1->next;} else {cur->next = l2;l2 = l2->next;}cur = cur->next;}if (l1) cur->next = l1;if (l2) cur->next = l2;return dummy->next;}
};
【归并排序+递归】LeetCode 148. Sort List相关推荐
- LeetCode 148. Sort List--面试算法题--C++,Python解法
LeetCode 148. Sort List–面试算法题–C++,Python解法 LeetCode题解专栏:LeetCode题解 LeetCode 所有题目总结:LeetCode 所有题目总结 大 ...
- leetcode 148. Sort List | 148. 排序链表(最优解归并排序,O(1)空间)
题目 https://leetcode.com/problems/sort-list/ 题解 分析 就链表排序问题来说,它的解法可以有好多种.但它的最优解应该只有一种思路,即从下至上的归并,时间复杂度 ...
- sort list java leetcode_[LeetCode] 148. Sort List Java
题目:Sort a linked list inO(n log n) time using constant space complexity. 题意及分析:要求使用o(nlogn)的时间复杂度和o( ...
- leetcode 148. Sort List
https://leetcode.com/problems/sort-list/discuss/46714/Java-merge-sort-solution 链表初始化代码:ListNode* ori ...
- 链表排序---迭代版本归并算法 + [leetcode]148. 排序链表
前言: 对于链表来说,排序首选应该是归并算法 维基百科上有归并算法的迭代版本和递归版本 基于数组实现的. https://zh.wikipedia.org/wiki/%E5%BD%92%E5%B9%B ...
- 【编程4】插入排序+快速排序+LeetCode.148(排序链表)
文章目录 一.排序链表 1.题目描述--LeetCode.148 2.分析 (1)一般的快排 (2)解题思路 3.实现 二.排序算法 三.插入排序 1.基本思想 (1)过程概述 (2)具体算法描述: ...
- LeetCode 75. Sort Colors (python一次遍历,模拟三路快排)
LeetCode 75. Sort Colors (python一次遍历,模拟三路快排) 题目分析: 本题需要实现数字只包含0,1,2的排序,并且要求一次遍历. 由于只用把数字隔离开,很容易想到快排的 ...
- 6-6 归并排序(递归法) (10分)
6-6 归并排序(递归法) (10分) 本题要求实现二路归并排序中的归并操作,待排序列的长度1<=n<=1000. 函数接口定义: void Merge(SqList L,int low, ...
- 【排序】LeetCode 75. Sort Colors
LeetCode 75. Sort Colors Solution1: 参考自:<leetcode-cpp 答案> 由于0,1,2非常紧凑,首先想到计数排序(counting sort), ...
最新文章
- 哇,union的优先级很高嘛
- abap中取内表中每一类中的一行的方法
- 小米(红米)手机查看生产日期和启用日期
- C++ getline() 和 get()
- 螺旋图形Linux,Canvas 螺旋线几何图形绘制
- 微信小程序开发——点击按钮退出小程序的实现
- Assembly generation failed Referenced assembly ‘xxx’ does not have a strong name
- 2021【第十二届蓝桥杯省赛】 C/C++ B组(第二场)
- ES6 关于Set对象
- 不洗袜子的高文博_那个孩子在夏天中旬用高袜子大笑?
- IBatisNet初步体验
- Samba服务器配置(2)--认识smb.conf配置文件
- iOS软件开发揭密:iPhoneiPad企业应用和游戏开发(china-pub首发)
- 安卓系统管理软件_便捷仓库管理软件智能管理系统
- git里面的文件怎么删不掉_git如何删除已经提交的文件夹
- 使用Springboot+MAVEN完成SSM项目的搭建(idea)--小白面试机试题
- 天创速盈:拼多多商家提升投产比有什么技巧?
- 两条命令让你的git轻松自动变基,学到了!
- LeetCode——剑指 Offer 38. 字符串的排列
- 苏宁易购商品详情API接口
热门文章
- Ubuntu学习日记--Lesson1:Linux基础和常用命令
- Php超出高度隐藏,html字符超出指定高度后省略显示_html/css_WEB-ITnose
- java 枚举类型enum ppt,java中的枚举类型——Enum
- oracle10gr2安装教程,Solaris10安装Oracle10gR2时的注意事项
- 安卓桌面整理app_升级到 iOS 13,你还会删除 APP 和整理桌面了吗?
- python opencv_Python open()
- ScalaReact式编程书
- java开发课程表_Java开发人员课程包,折扣高达86%
- sql数据类型_SQL数据类型
- 在Ubuntu上安装Docker –分步指南