merge k sorted lists

来源:互联网 发布:mysql数据库查ip 编辑:程序博客网 时间:2024/06/01 23:35

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

class Solution{  public:    ListNode* mergeKLists(vector<ListNode*> &lists)    {        if (lists.size() == 0)         return NULL;        ListNode* p = lists[0];        for (int i = 1; i < lists.size(); i++)        {            p = mergeTwoLists(p,lists[i]);        }        return p;    }    ListNode* mergeTwoLists(ListNode* l1, ListNode* l2)    {        if (l1 == NULL)            return l2;        if (l2 == NULL)            return l1;        ListNode dummy(-1);        ListNode* p = &dummy;        if (l1->val < l2->val)        {            p->next = l1;            p = p->next;            p->next = mergeTwoLists(p->next,l2);        }        else        {            p->next = l2;            p = p->next;            p->next = mergeTwoLists(l1,p->next);        }        return dummy.next;    }};
0 0
原创粉丝点击