leetcode:Merge k Sorted Lists

Posted jzdwajue

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode:Merge k Sorted Lists相关的知识,希望对你有一定的参考价值。

Merge k Sorted Lists
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.

分析
The basic idea is really simple. We can merge first two lists and then push it back. Keep doing this until there is only one list left in vector. Actually, we can regard this as an iterative divide-and-conquer solution.

ListNode *mergeKLists(vector<ListNode *> &lists) {
    if(lists.empty()){
        return nullptr;
    }
    while(lists.size() > 1){
        lists.push_back(mergeTwoLists(lists[0], lists[1]));
        lists.erase(lists.begin());
        lists.erase(lists.begin());
    }
    return lists.front();
}
ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) {
    if(l1 == nullptr){
        return l2;
    }
    if(l2 == nullptr){
        return l1;
    }
    if(l1->val <= l2->val){
        l1->next = mergeTwoLists(l1->next, l2);
        return l1;
    }
    else{
        l2->next = mergeTwoLists(l1, l2->next);
        return l2;
    }
}


以上是关于leetcode:Merge k Sorted Lists的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode-------merge-k-sorted-lists

[leetcode]merge-k-sorted-lists

leetcode : merge k sorted list

LeetCode - Merge k Sorted Lists

[Leetcode] Merge k sorted lists 合并k个已排序的链表

Leetcode merge-k-sorted-lists(合并k路有序链表 最小堆)