分隔链表
class Solution {
public:
vector<ListNode*> splitListToParts(ListNode* head, int k) {
int n = 0;
ListNode *temp = head;
while (temp != nullptr) {
n++;
temp = temp->next;
}
int quotient = n / k, remainder = n % k;
vector<ListNode*> parts(k,nullptr);
ListNode *curr = head;
for (int i = 0; i < k && curr != nullptr; i++) {
parts[i] = curr;
int partSize = quotient + (i < remainder ? 1 : 0);
for (int j = 1; j < partSize; j++) {
curr = curr->next;
}
ListNode *next = curr->next;
curr->next = nullptr;
curr = next;
}
return parts;
}
};
vector<ListNode*> parts(k,nullptr)
里面存储的是一个链表节点的哈希表,初始化长度为k,空指针
**将m个数分成n组的问题,重点是怎么把前面的n组长度比后面的大
int partSize = quotient + (i < remainder ? 1 : 0);``