leetcode 148 排序鍊錶

2021-10-21 17:46:46 字數 793 閱讀 6761

就是對乙個鍊錶進行排序。。

我採取得快排的思路,提交超過5%。。。看list標準庫是用歸併排序實現的,過幾天改下的,現在先把鍊錶快排的思路放上:

選擇target(即基礎點,左邊的元素都小於target,右邊的都大於target)

快指標從前往後,找到乙個小於target,然後與low指標對換val(鍊錶節點順序不變,只改變其中的val)

遞迴處理左邊和右邊(以low為界)

1 /**

2 * definition for singly-linked list.

3 * struct listnode

7 * listnode(int x) : val(x), next(nullptr) {}

8 * listnode(int x, listnode *next) : val(x), next(next) {}

9 * };

10 */

11 class solution

18 19 void sort(listnode *begin, listnode *end)

28 fast = fast->next;

29 }

30 swap(begin->val, low->val);

31 sort(begin, low);

32 sort(low->next, end);

33 }

34 };

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在陣列儲存下的歸併排序,需要借出輔助空間完成,而鍊錶儲存的歸併排序,不需要借助輔助空間,直接在原來的鍊錶上進行操作,...

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歸併這裡我感覺有點不符合題意 不符合常數空間 如果是快排的話呢,交換節點還是很麻煩的,所以快排交換值了 癱.jpg cl...

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....