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