//递归方法:
//分治思想,逐一攻破
class Solution {
public:
ListNode *mergeKLists(vector<ListNode *> &lists) {
if(lists.size() == 0)
return nullptr;
ListNode* head = nullptr;
for(int i = 0; i < lists.size(); ++i){
head = connectList(head, lists[i]);
}
return head;
}
ListNode* connectList(ListNode* p1, ListNode* p2){ //两两比较
if(p1 == nullptr || p2 == nullptr)
return p1 == nullptr ? p2 : p1;
if(p1->val < p2->val){
p1->next = connectList(p1->next, p2);
return p1;
}
else{
p2->next = connectList(p1, p2->next);
return p2;
}
}
};
京公网安备 11010502036488号