Leetcode_merge-k-sorted-lists

来源:互联网 发布:ubuntu iso镜像下载 编辑:程序博客网 时间:2024/04/27 20:08

地址:http://oj.leetcode.com/problems/merge-k-sorted-lists/

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


思路: 直接全部丢到一个vector里排序。

参考代码:

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */  bool cmp(const ListNode * lhs, const ListNode * rhs) {    return lhs->val < rhs->val; }    class Solution {public:    ListNode *mergeKLists(vector<ListNode *> &lists) {        if(lists.empty())        {            return NULL;        }        vector<ListNode*>vec;        for(int i = 0; i < lists.size(); ++i)        {            ListNode* pf = lists[i];            while(pf)            {                vec.push_back(pf);                pf = pf->next;            }        }        sort(vec.begin(), vec.end(), cmp);        if(!vec.empty())        {            ListNode* head = vec[0], *p = vec[0];            for(int i = 0; i < vec.size(); ++i)            {                p->next = vec[i];                p = p->next;            }            p->next = NULL;            return head;        }        return NULL;    }};


0 0
原创粉丝点击