一、辅助容器法
将每条链表的元素依次加入新建容器中,然后利用排序函数排序,最后利用新容器中的元素组成新链表。
class Solution {
public:
ListNode *mergeKLists(vector<ListNode *> &lists) {
vector<int> v;
for(int i=0;i<lists.size();i++)
{
ListNode *p=lists[i];
while(p)
{
v.push_back(p->val);
p=p->next;
}
}
sort(v.begin(),v.end());
ListNode *res=new ListNode(-1);
ListNode *cur=res;
for(int i=0;i<v.size();i++)
{
cur->next=new ListNode(v[i]);
cur=cur->next;
}
return res->next;
}
};
注意:
1.形参中vector<ListNode *> &lists,此lists容器储存的为每条链表的首地址,可用 lists[ k ] 来获取lists容器中第k+1个链表(下标从0开始)。