LeetCode 725 分隔鍊錶

2021-10-18 00:00:35 字數 1607 閱讀 8857

給定乙個頭結點為 root 的鍊錶, 編寫乙個函式以將鍊錶分隔為 k 個連續的部分。

每部分的長度應該盡可能的相等: 任意兩部分的長度差距不能超過 1,也就是說可能有些部分為 null。

這k個部分應該按照在鍊錶**現的順序進行輸出,並且排在前面的部分的長度應該大於或等於後面的長度。

返回乙個符合上述規則的鍊錶的列表。

舉例: 1->2->3->4, k = 5 // 5 結果 [ [1], [2], [3], [4], null ]

示例 1:

輸入:

root =[1

,2,3

], k =

5輸出:[[

1],[

2],[

3],[

],]解釋:

輸入輸出各部分都應該是鍊錶,而不是陣列。

例如, 輸入的結點 root 的 val=

1, root.next.val =

2, \root.next.next.val =

3, 且 root.next.next.next = null。

第乙個輸出 output[

0] 是 output[0]

.val =

1, output[0]

.next = null。

最後乙個元素 output[

4] 為 null, 它代表了最後乙個部分為空鍊錶。

示例 2:

輸入:

root =[1

,2,3

,4,5

,6,7

,8,9

,10], k =

3輸出:[[

1,2,

3,4]

,[5,

6,7]

,[8,

9,10]

]解釋:

輸入被分成了幾個連續的部分,並且每部分的長度相差不超過1.前面部分的長度大於等於後面部分的長度。

提示:root 的長度範圍: [0,

1000].

輸入的每個節點的大小範圍:[0,

999]

.k 的取值範圍: [1,

%k;//長度較長的部分為陣列的前n個

int length=cnt/k;

int cur=0;

//較長部分情況的處理

for(

int i=

0;i) res[cur++

]=node.next;

}//較短部分情況的處理

for(

;cur) res[cur]

=node.next;}}

return res;

}}

LeetCode 725 分隔鍊錶

給定乙個頭結點為 root 的鍊錶,編寫乙個函式以將鍊錶分隔為 k 個連續的部分。每部分的長度應該盡可能的相等 任意兩部分的長度差距不能超過 1,也就是說可能有些部分為 null。這k個部分應該按照在鍊錶中出現的順序進行輸出,並且排在前面的部分的長度應該大於或等於後面的長度。返回乙個符合上述規則的鍊...

LeetCode 725 分隔鍊錶

給定乙個頭結點為 root 的鍊錶,編寫乙個函式以將鍊錶分隔為 k 個連續的部分。每部分的長度應該盡可能的相等 任意兩部分的長度差距不能超過 1,也就是說可能有些部分為 null。這k個部分應該按照在鍊錶 現的順序進行輸出,並且排在前面的部分的長度應該大於或等於後面的長度。返回乙個符合上述規則的鍊錶...

Leetcode 725 分隔鍊錶 C

給定乙個頭結點為 root 的鍊錶,編寫乙個函式以將鍊錶分隔為 k 個連續的部分。每部分的長度應該盡可能的相等 任意兩部分的長度差距不能超過 1,也就是說可能有些部分為 null。這k個部分應該按照在鍊錶 現的順序進行輸出,並且排在前面的部分的長度應該大於或等於後面的長度。返回乙個符合上述規則的鍊錶...