LeetCode题解之Merge k Sorted Lists 解法二

时间:2023-03-10 03:30:42
LeetCode题解之Merge k Sorted Lists 解法二

1、题目描述

LeetCode题解之Merge k Sorted Lists 解法二

2、分析

利用 vector 存储指针,同时合并k个链表。

3、代码

  ListNode* mergeKLists(vector<ListNode*>& lists) {

         vector<ListNode*> p;
for (vector<ListNode*>::iterator it = lists.begin(); it != lists.end(); it++) {
if (*it != NULL){
ListNode *pn = *it;
p.push_back(pn);
}
} if (p.size() == )
return NULL; ListNode *dummy = new ListNode();
ListNode *pn = dummy; while (p.size() > ) {
int n = minval(p);
pn->next = p[n];
pn = pn->next;
p[n] = p[n]->next;
if (p[n] == NULL)
p.erase(p.begin() + n);
}
return dummy->next;
} int minval(vector<ListNode*> p)
{
auto res = p.begin();
for (auto it = p.begin(); it != p.end(); it++) {
if ((*it)->val <= (*res)->val)
res = it;
}
return res - p.begin();
}