#include<iostream>
using namespace std;//Sort a linked list in O(n log n) time using constant space complexity.//Definition for singly-linked list.
//归并排序
#if 0
struct ListNode {int val;ListNode *next;ListNode(int x) : val(x), next(NULL) {}};
struct LinkList {int size;ListNode head;
};
class Solution {
public:ListNode *sortList(ListNode *head) {}LinkList *PushElement(LinkList* linklist, int val) {if (linklist->size == 0) {return NULL;}ListNode* listnode = (ListNode*)malloc(sizeof(ListNode));listnode = linklist->head.next;listnode->val = val;listnode->next = NULL;linklist->size++;return linklist;}int getTopElement(LinkList* linklist) {if (linklist->size == 0) {return 0;}ListNode* listnode = (ListNode*)malloc(sizeof(ListNode));for (int i = 0; i < linklist->size; i++){listnode = linklist->head.next;}return listnode->val;}
};
#endif
#if 1//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* slow = head;ListNode* fast = head->next;while (fast != NULL && fast->next != NULL && slow != NULL){fast = fast->next->next;slow = slow->next;}ListNode* left = sortList(slow->next);slow->next = NULL;ListNode* right = sortList(head);return mergeTwoList(left, right);}ListNode *mergeTwoList(ListNode* left, ListNode *right){ListNode* dummy = new ListNode(0);ListNode* p = dummy;while (left && right){if (left->val > right->val){p->next = right;right = right->next;}else{p->next = left;left = left->next;}p = p->next;}if (left == NULL)p->next = right;if (right == NULL)p->next = left;return dummy->next;}
};#endif

Leedcode4-sort listnode 归并排序相关推荐

  1. HDU 5775 Bubble Sort(归并排序+逆序数)

    题目链接:HDU 5775 Bubble Sort                                                                           ...

  2. Sort List[leetcode] 由归并排序的递归和循环,到本题的两种解法

    归并排序能够有两种思路----top-down 和 bottom-up top-down: 递归实现,将数组分成两半.分别处理.再合并. 伪代码例如以下: split ( A[], l, r) {if ...

  3. 链表的二路归并排序 Sort List

    对于链表的排序问题,想找一种时间复杂度为O(nlogn),空间复杂度O(1)的算法.该问题源自于Leetcode,Sort a linked list in O(n log n) time using ...

  4. python代码实现归并排序(Merge Sort )

    python代码实现归并排序(Merge Sort ) 归并排序(Merge Sort) 归并排序,是创建在归并操作上的一种有效的排序算法.算法是采用分治法(Divide and Conquer)的一 ...

  5. LeetCode OJ - Sort List

    这道题的难点在于: 1. 对链表排序,这样就不能向访问数组一样随机访问里头的元素: 2. 题中要求时间复杂度为O(nlogn),且空间复杂度为O(1) 我们一般了解的是快排和归并可以达到这样的时间复杂 ...

  6. 今天说的是必须要熟练掌握的归并排序

    之前给大家介绍了几个简单排序,大家只需了解即可,下面介绍的大家就需要熟练掌握了,是面试高频考点,该文章分别用了递归法和迭代法实现 2 路归并,希望对大家有一丢丢的帮助.    归并排序 (Merge ...

  7. 【算法】快速排序与归并排序对比

    算法 系列博客 [算法]刷题范围建议 和 代码规范 [算法]复杂度理论 ( 时间复杂度 ) [字符串]最长回文子串 ( 蛮力算法 ) [字符串]最长回文子串 ( 中心线枚举算法 ) [字符串]最长回文 ...

  8. leetcode 148. 排序链表(归并排序)

    给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 . 进阶: 你可以在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序吗? 示例 1: 输入:head = ...

  9. 七大排序的个人总结(二) 归并排序(Merge

    七大排序的个人总结(二) 归并排序(Merge  归并排序(Merge Sort): 归并排序是一个相当"稳定"的算法对于其它排序算法,比如希尔排序,快速排序和堆排序而言,这些算法 ...

最新文章

  1. 有多少可爱IT精英,他们的爱情屡屡“挨踢”
  2. python import变量_Python import模块调用
  3. 数据结构:用栈实现表达式的转换(文字描述+详细步骤示例)——中缀转后缀
  4. html path属性,HTML Location pathname用法及代码示例
  5. POJ3349,洛谷SP4354-SnowflakeSnowSnowflakes【最小表示法,hash】
  6. 改进初学者的PID-介绍
  7. 很详细的硬盘基础知识
  8. linux永久禁止进程,SELinux如何永久禁用 SELinux如何永久禁用
  9. SetCapture()函数和ReleaseCapture()
  10. Parallels Desktop 安装Win 10提示“安全启动功能防止操作系统启动”该如何操作?
  11. 高通路由器(WIFI)芯片处理器IPQ4029介绍
  12. 惠普打印机双击之后没有扫描_安装hp laserjet m1005 mfp打印机驱动后,双击我的电脑里怎么没有扫描图标呢??...
  13. 下载dns linux命令,linux dns 部署命令(示例代码)
  14. 利用Python高效自动化运维巡检网络设备
  15. pygame之display模块
  16. OpenCV:对图像的位操作bitwise_and(与),bitwise_or(或),bitwise_not(非),bitwise_xor(异或)
  17. MySQL 备份 nb3 和 psc的区别
  18. opencv3之SVD
  19. 创基MIFI扩展坞自带4G上网功能扩展坞
  20. 可以运行在微信小程序上的编程语言

热门文章

  1. sql中in和exist语句的区别?
  2. kendo treeview 修改节点显示值_VBA学习笔记60-1: Treeview控件
  3. java thrift连接池_由浅入深了解Thrift之客户端连接池化
  4. 动态规划算法之数塔问题
  5. php查到的内容追加到html,javascript - 请问php中如何将查询出来的结果数组转化成自己想要的格式,并在前台利用js输出到html中...
  6. php获取ios,IOS 通过描述获取UDID PHP代码版
  7. bios设置 联想m8000t_怎么进bios设置硬盘启动顺序
  8. MySQL 基础 ———— 连接查询
  9. Spring Boot整合Redis——自定义RedisSerializer
  10. android 按钮顶级效果_Android 源码之button高亮效果