题解 | #合并k个已排序的链表#
合并k个已排序的链表
https://www.nowcoder.com/practice/65cfde9e5b9b4cf2b6bafa5f3ef33fa6
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode *mergeKLists(vector<ListNode *> &lists) {
if(!lists.size())return {};
vector<ListNode *> vt;
for(auto& l : lists){
ListNode *p = l;
while(p){
vt.push_back(p);
p = p->next;
}
}
auto cmp = [&](ListNode *vt1,ListNode *vt2){
return vt1->val < vt2->val ;
};
sort(vt.begin(), vt.end(),cmp);
for(int i = 0 ; i < vt.size()-1 ; ++i){
vt[i]->next = vt[i+1];
}
vt[vt.size()-1]->next = nullptr;
return vt[0];
}
};
查看19道真题和解析