博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode[148]Sort List
阅读量:5244 次
发布时间:2019-06-14

本文共 1233 字,大约阅读时间需要 4 分钟。

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 *merge(ListNode *left,ListNode *right){    ListNode *newl=new ListNode(0);    ListNode *p=newl;    while(left&&right)    {        if(left->val<=right->val)        {           p->next=left;           left=left->next;        }        else        {            p->next=right;            right=right->next;        }        p=p->next;    }    if(left)p->next=left;    if(right)p->next=right;    return newl->next;}ListNode *mergeSort(ListNode *head){    if(head==NULL||head->next==NULL)return head;    ListNode *slow=head;    ListNode *fast=head;    ListNode *pre=NULL;    while(fast&&fast->next)    {        fast=fast->next->next;        pre=slow;        slow=slow->next;    }    pre->next=NULL;    ListNode *left=mergeSort(head);    ListNode *right=mergeSort(slow);    return merge(left,right);}    ListNode *sortList(ListNode *head) {        if(head==NULL||head->next==NULL)return head;        return mergeSort(head);    }};

 

转载于:https://www.cnblogs.com/Vae1990Silence/p/4280740.html

你可能感兴趣的文章
python多线程下载网页图片并保存至特定目录
查看>>
了解循环队列的实现
查看>>
CentOS 简单命令
查看>>
Linux中修改docker镜像源及安装docker
查看>>
数位dp(模板+例题)
查看>>
javascript中强制类型转换
查看>>
python学习笔记
查看>>
php+ajax(jquery)的文件异步上传
查看>>
使用&nbsp;SharedPreferences 分类: Andro...
查看>>
TLA+(待续...)
查看>>
python selenium 基本常用操作
查看>>
题解: [GXOI/GZOI2019]与或和
查看>>
Eurekalog
查看>>
LeetCode--169--求众数
查看>>
Copy 函数
查看>>
Android服务之Service(其一)
查看>>
网站sqlserver提权操作
查看>>
PHP变量作用域以及地址引用问题
查看>>
实验四
查看>>
Elastic Stack-Elasticsearch使用介绍(三)
查看>>