/**
* 148. 排序鍊錶
* @author wsq
* @date 2020/11/21
給你鍊錶的頭結點 head ,請將其按 公升序 排列並返回 排序後的鍊錶 。
高階:你可以在 o(n log n) 時間複雜度和常數級空間複雜度下,對鍊錶進行排序嗎?
示例1:
輸入:head = [4,2,1,3]
輸出:[1,2,3,4]
*/package com.wsq.linkedllisk;
public
class
mergesortlist
private listnode sortlist
(listnode head, object tail)
if(head.next == tail)
// 採用快慢指標獲取鍊錶的中點,這個方式可以學一下,以後可以用到
listnode slow = head;
listnode fast = head;
while
(fast != tail)
} listnode mid = slow;
listnode leftlist =
sortlist
(head, mid)
; listnode rightlist =
sortlist
(mid, tail)
;return
merge
(leftlist, rightlist);}
private listnode merge
(listnode leftlist, listnode rightlist)
else
node = node.next;}if
(tmp1 != null)
else
return head.next;
}}
148 排序鍊錶 歸併排序
難度 中等 題目描述 解題思路 148.排序鍊錶 2020 8 13 1對鍊錶進行歸併排序 1 快慢指標找中間節點 2 遞迴呼叫mergesort 3 合併有序鍊錶 public listnode sortlist listnode head public listnode listmergesor...
148 排序鍊錶 歸併排序 快速排序
在 o n log n 時間複雜度和常數級空間複雜度下,對鍊錶進行排序。輸入 4 2 1 3輸出 1 2 3 4 歸併排序法 利用快慢指標將鍊錶分為前後半段 先對slow.next找到後半段並進行排序 斷開鍊錶前後半段,對前半段進行排序 合併排序完成後的左右兩條鍊錶 function mergetw...
148 排序鍊錶 中等 鍊錶 歸併排序
給你鍊錶的頭結點head,請將其按 公升序 排列並返回 排序後的鍊錶 高階 你可以在o n log n 時間複雜度和常數級空間複雜度下,對鍊錶進行排序嗎?示例 1 輸入 head 4,2,1,3 輸出 1,2,3,4 示例 2 輸入 head 1,5,3,4,0 輸出 1,0,3,4,5 示例 3 ...