leetcode problem :23. Merge k Sorted Lists

class Solution {
public:
    ListNode* mergeKLists(vector<ListNode*>& lists) {
        ListNode* head = NULL;
        ListNode* current = NULL;
        for (int i = 0; i < lists.size(); ++i){
            if (!lists[i]){
                lists.erase(lists.begin()+i);
                --i;
            }
        }
        while (lists.size()){
            int min_value=lists[0]->val;
            int min_index = 0;
            for (int i = 1; i < lists.size(); ++i){
                if (lists[i]->val < min_value){
                    min_index = i;
                    min_value = lists[i]->val;
                }
            }
            if (head == NULL){
                head = lists[min_index];
                current = head;
            }
            else {
                current->next = lists[min_index];
                current = current->next;
            }
            lists[min_index] = lists[min_index]->next;
            if (!lists[min_index]){
                lists.erase(lists.begin()+min_index);
            }
        }
        return head;
    }
};

  

posted @ 2017-11-27 21:24  nosaferyao  阅读(110)  评论(0编辑  收藏  举报