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相关推荐

  1. LeetCode 148. Sort List--面试算法题--C++,Python解法

    LeetCode 148. Sort List–面试算法题–C++,Python解法 LeetCode题解专栏:LeetCode题解 LeetCode 所有题目总结:LeetCode 所有题目总结 大 ...

  2. leetcode 148. Sort List | 148. 排序链表(最优解归并排序,O(1)空间)

    题目 https://leetcode.com/problems/sort-list/ 题解 分析 就链表排序问题来说,它的解法可以有好多种.但它的最优解应该只有一种思路,即从下至上的归并,时间复杂度 ...

  3. 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( ...

  4. leetcode 148. Sort List

    https://leetcode.com/problems/sort-list/discuss/46714/Java-merge-sort-solution 链表初始化代码:ListNode* ori ...

  5. 链表排序---迭代版本归并算法 + [leetcode]148. 排序链表

    前言: 对于链表来说,排序首选应该是归并算法 维基百科上有归并算法的迭代版本和递归版本 基于数组实现的. https://zh.wikipedia.org/wiki/%E5%BD%92%E5%B9%B ...

  6. 【编程4】插入排序+快速排序+LeetCode.148(排序链表)

    文章目录 一.排序链表 1.题目描述--LeetCode.148 2.分析 (1)一般的快排 (2)解题思路 3.实现 二.排序算法 三.插入排序 1.基本思想 (1)过程概述 (2)具体算法描述: ...

  7. LeetCode 75. Sort Colors (python一次遍历,模拟三路快排)

    LeetCode 75. Sort Colors (python一次遍历,模拟三路快排) 题目分析: 本题需要实现数字只包含0,1,2的排序,并且要求一次遍历. 由于只用把数字隔离开,很容易想到快排的 ...

  8. 6-6 归并排序(递归法) (10分)

    6-6 归并排序(递归法) (10分) 本题要求实现二路归并排序中的归并操作,待排序列的长度1<=n<=1000. 函数接口定义: void Merge(SqList L,int low, ...

  9. 【排序】LeetCode 75. Sort Colors

    LeetCode 75. Sort Colors Solution1: 参考自:<leetcode-cpp 答案> 由于0,1,2非常紧凑,首先想到计数排序(counting sort), ...

最新文章

  1. 哇,union的优先级很高嘛
  2. abap中取内表中每一类中的一行的方法
  3. 小米(红米)手机查看生产日期和启用日期
  4. C++ getline() 和 get()
  5. 螺旋图形Linux,Canvas 螺旋线几何图形绘制
  6. 微信小程序开发——点击按钮退出小程序的实现
  7. Assembly generation failed Referenced assembly ‘xxx’ does not have a strong name
  8. 2021【第十二届蓝桥杯省赛】 C/C++ B组(第二场)
  9. ES6 关于Set对象
  10. 不洗袜子的高文博_那个孩子在夏天中旬用高袜子大笑?
  11. IBatisNet初步体验
  12. Samba服务器配置(2)--认识smb.conf配置文件
  13. iOS软件开发揭密:iPhoneiPad企业应用和游戏开发(china-pub首发)
  14. 安卓系统管理软件_便捷仓库管理软件智能管理系统
  15. git里面的文件怎么删不掉_git如何删除已经提交的文件夹
  16. 使用Springboot+MAVEN完成SSM项目的搭建(idea)--小白面试机试题
  17. 天创速盈:拼多多商家提升投产比有什么技巧?
  18. 两条命令让你的git轻松自动变基,学到了!
  19. LeetCode——剑指 Offer 38. 字符串的排列
  20. 苏宁易购商品详情API接口

热门文章

  1. Ubuntu学习日记--Lesson1:Linux基础和常用命令
  2. Php超出高度隐藏,html字符超出指定高度后省略显示_html/css_WEB-ITnose
  3. java 枚举类型enum ppt,java中的枚举类型——Enum
  4. oracle10gr2安装教程,Solaris10安装Oracle10gR2时的注意事项
  5. 安卓桌面整理app_升级到 iOS 13,你还会删除 APP 和整理桌面了吗?
  6. python opencv_Python open()
  7. ScalaReact式编程书
  8. java开发课程表_Java开发人员课程包,折扣高达86%
  9. sql数据类型_SQL数据类型
  10. 在Ubuntu上安装Docker –分步指南