LeetCode 148 排序鍊錶

2021-09-12 16:23:47 字數 825 閱讀 3745

在 o(n log n) 時間複雜度和常數級空間複雜度下,對鍊錶進行排序。

示例 1:

輸入:4->2->1->3輸出:1->2->3->4
示例 2:

輸入:-1->5->3->4->0輸出:-1->0->3->4->5
歸併這裡我感覺有點不符合題意(不符合常數空間)。如果是快排的話呢,交換節點還是很麻煩的,所以快排交換值了(癱.jpg)

class solution 

pre->next = nullptr;

auto l1 = sortlist(head);

auto l2 = sortlist(slow);

return merge(l1,l2);

}listnode* merge(listnode* l1,listnode* l2)

else

}};

class solution 

void quick_sort(listnode* head,listnode* tail)

p2 = p2->next;

} swap(head,p1);

quick_sort(head,p1);

quick_sort(p1->next,tail);

} listnode* sortlist(listnode* head)

};

Leetcode 148 排序鍊錶

在 o n log n 時間複雜度和常數級空間複雜度下,對鍊錶進行排序。示例 1 輸入 4 2 1 3 輸出 1 2 3 4示例 2 輸入 1 5 3 4 0 輸出 1 0 3 4 5在陣列儲存下的歸併排序,需要借出輔助空間完成,而鍊錶儲存的歸併排序,不需要借助輔助空間,直接在原來的鍊錶上進行操作,...

leetcode148 排序鍊錶

在 o n log n 時間複雜度和常數級空間複雜度下,對鍊錶進行排序。示例 1 輸入 4 2 1 3 輸出 1 2 3 4 示例 2 輸入 1 5 3 4 0 輸出 1 0 3 4 5 看到題目就知道要二分,這裡用的是遞迴版歸併 definition for singly linked list....

LeetCode 148 排序鍊錶

在 o n log n 時間複雜度和常數級空間複雜度下,對鍊錶進行排序。示例 1 輸入 4 2 1 3 輸出 1 2 3 4 示例 2 輸入 1 5 3 4 0 輸出 1 0 3 4 5借助乙個排序演算法來進行實現,因為要求在o n log n 時間複雜度下進行排序,選擇歸併排序 思路 在整個鍊錶進...