LeetCode | 148. Sort List
題目:
Given the head
of a linked list, return the list after sorting it in ascending order.
Follow up: Can you sort the linked list in O(n logn)
time and O(1)
memory (i.e. constant space)?
Example 1:
Input: head = [4,2,1,3] Output: [1,2,3,4]
Example 2:
Input: head = [-1,5,3,4,0] Output: [-1,0,3,4,5]
Example 3:
Input: head = [] Output: []
Constraints:
- The number of nodes in the list is in the range
[0, 5 * 104]
. -105 <= Node.val <= 105
程式碼:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
void swap(int& a, int& b) {
int tmp = a;
a = b;
b = tmp;
return;
}
ListNode* getPartition(ListNode* head, ListNode* end) {
ListNode *key = head, *p = head, *cur = head->next;
while(cur != end)
{
if(cur->val < key->val)
{
p = p->next;
swap(cur->val, p->val);
}
cur = cur->next;
}
swap(key->val, p->val);
return p;
}
void sort(ListNode* head, ListNode* end) {
if(head == end)
return;
ListNode* partition = getPartition(head, end);
sort(head, partition);
sort(partition->next, end);
}
ListNode* sortList(ListNode* head) {
if(head == NULL || head->next == NULL)
return head;
sort(head, NULL);
return head;
}
};
相關文章
- [LeetCode] 148. Sort ListLeetCode
- Leetcode-Sort ListLeetCode
- Sort List leetcode javaLeetCodeJava
- Leetcode Insertion Sort ListLeetCode
- LeetCode148:Sort ListLeetCode
- Insertion Sort List Leetcode javaLeetCodeJava
- LeetCode | 147. Insertion Sort ListLeetCode
- 【Leetcode】147. Insertion Sort ListLeetCode
- LeetCode147:Insertion Sort ListLeetCode
- c++ list sort方法C++
- Leetcode Sort ColorsLeetCode
- Leetcode Sort ArrayLeetCode
- List排序用Collections.sort and Comparator排序
- Leetcode-Sort ColorsLeetCode
- Sort Colors leetcode javaLeetCodeJava
- List排序Collections.sort 重寫compare排序
- Mac文字排序編輯工具:Magic Sort ListMac排序
- Leetcode Rotate ListLeetCode
- Leetcode Partition ListLeetCode
- python用List的內建函式list.sort進行排序Python函式排序
- Java面試-List中的sort詳細解讀Java面試
- 147. Insertion Sort List(插入排序)排序
- python中sorted()和list.sort()的用法Python
- std list/vector sort 排序就這麼簡單排序
- [LeetCode] 451. Sort Characters By FrequencyLeetCode
- LeetCode每日一題:sort colorsLeetCode每日一題
- LeetCode-Wiggle SortLeetCode
- 【LeetCode】Sort Colors 陣列排序LeetCode陣列排序
- LeetCode-Reorder ListLeetCode
- Leetcode-Partition ListLeetCode
- Leetcode-Rotate ListLeetCode
- Partition List leetcode javaLeetCodeJava
- Rotate List leetcode javaLeetCodeJava
- Reorder List leetcode javaLeetCodeJava
- [LeetCode] 280. Wiggle SortLeetCode
- LeetCode之Sort Array By Parity(Kotlin)LeetCodeKotlin
- Script:List SORT ACTIVITY監控臨時空間的使用
- [LeetCode] 61. Rotate ListLeetCode