讨论/技术交流/交流|23.合并K个升序列表/
交流|23.合并K个升序列表

简介

通过了129个用例,但是面对130用例的大量数据倒下了,自己找不出BUG,希望大家都来看看。


代码

class Solution {
public:
    ListNode* mergeKLists(vector<ListNode*>& lists) {
        ListNode* ret = new ListNode;
        ListNode* cur = ret;
        int lens = lists.size();
        //列表最长为500,所以定义了501次
        for(int j=0;j<501;++j){
            //count用来统计有多少链表已经到末尾了
            int count =0;
            int min_val = 10001;
            //记录目前最小值所在链表的index
            int index = 0;
            for(int i=0;i<lens;++i){
                //如果这个链表已经是空,那就++
                if(lists[i] == nullptr){
                    count++;
                //
                }else if(lists[i]->val <= min_val){
                    min_val = lists[i]->val;
                    index = i;
                }
            }
            //表示连表已全为空
            if(count == lens) break;
            //存入返回链表
            cur->next = lists[index];
            cur = cur->next;
            //最小值所在的链表指向下一节点。
            lists[index] = lists[index]->next;
        }
        return ret->next;
    }
};

这里是输出详情

https://leetcode-cn.com/submissions/detail/167768568/


1
共 0 个回复
暂无回复