148 排序鍊錶 歸併排序

2021-10-09 04:08:11 字數 1013 閱讀 6812

難度:中等

題目描述

解題思路

/*

* 148. 排序鍊錶

* 2020/8/13

* 1對鍊錶進行歸併排序

* 1、快慢指標找中間節點

* 2、遞迴呼叫mergesort

* 3、合併有序鍊錶

*/public listnode sortlist

(listnode head)

public listnode listmergesort

(listnode head)

// 對右半部分進行歸併排序

listnode right =

listmergesort

(slow.next)

;// 鍊錶判斷結束的標誌:末尾節點.next==null

slow.next = null;

// 對左半部分進行歸併排序

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

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 首先想到的是遞迴,排序中的歸併遞迴排序滿足這個時間複雜度 難點一 找到乙個連表的中間節點...