給定乙個頭結點為 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個部分應該按照在鍊錶 現的順序進行輸出,並且排在前面的部分的長度應該大於或等於後面的長度。返回乙個符合上述規則的鍊錶...