LeetCode725分割鍊錶

2021-09-27 08:10:11 字數 755 閱讀 2875

題目:

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

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

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

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

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

思路:1.先統計出鍊錶的長度count

2.判斷count與k的大小

a.如果count<=k,那就進行k等分

b.如果count>k,計算出每組中最少的元素個數(count/k),計算出要分幾個大組count%k(也是未分配元素數量)),那要分的小組的數量就為k-(count%k)

public listnode splitlisttoparts(listnode root, int k) 

<=k,進行k等分

if(count<=k)

listnode temp=p.next;

p.next=null;

p=temp;

}再分小組

for(int i=groupnumber;ilistnode temp=p.next;

p.next=null;

p=temp;

}return node;

}}

LeetCode 725 分割鍊錶

鍊錶中比較常規的一道題 取整,取餘,雙指標的應用 自己寫的 有些長,但是執行4ms結束,超過100 class solution int len k len k int num plus len k listnode head root 當前的這一段的頭節點 listnode prev nullpt...

LeetCode 725 分隔鍊錶

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

LeetCode 725 分隔鍊錶

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