LeetCode刷题(C++)——Sort List(Medium)
来源:互联网 发布:mac锁定触控板快捷键 编辑:程序博客网 时间:2024/06/01 16:36
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* sortList(ListNode* head) { if(head==NULL || head->next==NULL){ return head; } ListNode* a=head, *b=head; while(b->next && b->next->next){ a=a->next; b=b->next->next; } b=sortList(a->next); a->next=NULL; a=sortList(head); ListNode* tail=NULL; while(a && b){ if(a->val < b->val){ if(tail){ tail=tail->next=a; } else{ head=tail=a; } a=a->next; } else{ if(tail){ tail=tail->next=b; } else{ head=tail=b; } b=b->next; } } if(a){ if(tail){ tail->next=a; } else{ head=tail; } } else{ if(tail){ tail->next=b; } else{ head=b; } } return head; }};
阅读全文
1 0
- LeetCode刷题(C++)——Sort List(Medium)
- LeetCode刷题(C++)——Sort Colors(Medium)
- LeetCode刷题(C++)——Rotate List(Medium)
- LeetCode刷题(C++)——Remove Nth Node From End of List(Medium)
- LeetCode刷题(C++)——Remove Duplicates from Sorted List II(Medium)
- LeetCode刷题(C++)——Linked List Cycle II(Medium)
- LeetCode刷题(C++)——Odd Even Linked List(Medium)
- Insertion Sort List(medium)
- [Leetcode 148, medium] Sort List
- LeetCode刷题(C++)——ZigZag Conversion(Medium)
- LeetCode刷题(C++)——3Sum(Medium)
- LeetCode刷题(C++)——Generate Parentheses(Medium)
- LeetCode刷题(C++)——4Sum(Medium)
- LeetCode刷题(C++)——Next Permutation(Medium)
- LeetCode刷题(C++)——Word Search(Medium)
- LeetCode 之 Sort List — C 实现
- [Leetcode 147, medium] Insertion Sort List
- Leetcode 147. Insertion Sort List (Medium) (cpp)
- 浅谈对ActiveMQ的理解
- 2017-05-19 DBA日记,记一次SQL语句诊断的过程[之前的标题有误,现修改]
- CAS单点登录
- 阿里云服务器ssh连不上,可以ping通
- HDU 2844 Coins——多重背包
- LeetCode刷题(C++)——Sort List(Medium)
- MySQL 临时表与内存表
- thinkphp uploadify ajax上传图片,网上很多有问题,我简单总结一下
- 什么时候使用字节流、什么时候使用字符流,二者的区别
- 文章标题
- 第十届“中国电机工程学会杯”全国大学生电工数学建模竞赛 A 题:微电网日前优化调度
- WeakReference与SoftReference
- [Android-Kotlin学习日志]AndroidStudio中Kotlin环境搭建
- Python~~简介介绍