题解 | #牛群的合并#
牛群的合并
https://www.nowcoder.com/practice/d0cb24e1494e4f45a4b7d1a17db0daef
/**
* struct ListNode {
* int val;
* struct ListNode *next;
* ListNode(int x) : val(x), next(nullptr) {}
* };
*/
#include <vector>
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param lists ListNode类vector
* @return ListNode类
*/
ListNode* mergeKLists(vector<ListNode*>& lists) {
// write code here
auto j=lists.begin();
while(j!=lists.end()){
if(*j==nullptr) {
lists.erase(j);//擦除之后迭代器会自动移到下一个元素
}else{
j++;
}
}
if(lists.empty()) return nullptr; //递归退出条件
ListNode *p=lists[0];
int q=0;
for(int s=0;s<lists.size();s++){ //找到最小的返回
if(lists[s]->val<p->val) {
p=lists[s];
q=s;
}
}
lists[q]=lists[q]->next;
p->next=mergeKLists(lists);
return p;
}
};
