//23. 合并K个升序链表
class Solution {
public:
ListNode* mergeKLists(vector<ListNode*>& lists) {
if (lists.empty()) return nullptr;
ListNode* head = new ListNode;
head->next = lists[0];
for (int i = 1; i < lists.size(); i++) {
ListNode* p = head;
ListNode* q = lists[i];
while (1) {
if (p->next == nullptr) {
p->next = q;
break;
}
if (q == nullptr) break;
if (q->val <= p->next->val) {
auto t = q;
q = q->next;
t->next = p->next;
p->next = t;
p = t;
}
else p = p->next;
}
}
return head->next;
}
};
LeetCode23. 合并K个升序链表
最新推荐文章于 2024-09-24 08:39:28 发布