class Solution {
public:
ListNode* mergesort(ListNode* p,ListNode* q)
{
ListNode* res=new ListNode(0);
ListNode* head=res;
while (p!=NULL&&q!=NULL)
{
if(p->val<=q->val)
{
res->next=p;
p=p->next;
res=res->next;
}
else
{
res->next=q;
q=q->next;
res=res->next;
}
}
// have not done
while (p!=NULL)
{
res->next=p;
p=p->next;
res=res->next;
}
while (q!=NULL)
{
res->next=q;
q=q->next;
res=res->next;
}
return head->next;
}
ListNode* mergeKLists(vector<ListNode*>& lists)
{
if(lists.size()==NULL)
return NULL;
ListNode* res=lists[0];
for(int i=1;i<lists.size();i++)
{
res=mergesort(res,lists[i]);
}
return res;
}
};
每日一题---- 4.25合并k个序列
最新推荐文章于 2021-10-12 16:20:28 发布