LeetCode:34.合并K个升序链表
目录
1.合并K个升序链表
1.合并K个升序链表
class Solution {
public:ListNode* mergeTwoList(ListNode* list1, ListNode* list2){if(list1 == nullptr) return list2;if(list2 == nullptr) return list1;if(list1->val <= list2->val){list1->next = mergeTwoList(list1->next, list2);return list1;}else{list2->next = mergeTwoList(list2->next, list1);return list2;}}ListNode* mergeList(vector<ListNode*>& lists, int left, int right){if(left > right) return nullptr;if(left == right) return lists[left];int mid = left + (right - left) / 2;ListNode* l = mergeList(lists, left, mid);ListNode* r = mergeList(lists, mid + 1, right);return mergeTwoList(l, r);}ListNode* mergeKLists(vector<ListNode*>& lists) {if(lists.empty()) return {};return mergeList(lists, 0, lists.size() - 1); }
};