zoukankan      html  css  js  c++  java
  • LeetCode_Merge k Sorted Lists

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

      

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        ListNode *mergeKLists(vector<ListNode *> &lists) {
            // Start typing your C/C++ solution below
            // DO NOT write int main() function
           int n = lists.size() ;
            if(n == 0) return NULL;
            if(n == 1) return lists[0];
            
            int *flag = new int[n] ;
            ListNode **list = new ListNode *[n] ;
            int i,min ;
            for(i = 0; i<n;i++)
            {
              if(lists[i] == NULL)
                flag[i] = 0;
              else
                flag[i] = 1;
               
               list[i] = lists[i];
            }
                 
            bool stop = true;
            ListNode *head = NULL, *current;
            
            while(stop)
            {
               for(i = 0; i<n &&flag[i] == 0; i++) ;
               
               if(i == n) break;
               min = i ;
               
               for(i++;i<n ;i++)
               {
                  if(flag[i]== 0)
                     continue;
                  if(list[i]->val < list[min]->val)
                         min = i;
               }
            
               if(head == NULL)
               {
                  head = list[min];
                  current = list[min];
               }else {
               
                  current->next = list[min];
                  current = list[min];
               }
               
              list[min] = list[min]->next;
              if(list[min] == NULL) flag[min] = 0;
            }// end of while 
            
            return head; 
        }
    };
    --------------------------------------------------------------------天道酬勤!
  • 相关阅读:
    信息收集与扫描
    流密码
    信息安全面临的威胁
    .net core Web应用启动类
    .net core 1.0 Web MVC 自定义认证过程
    彻底脱离循环与结束当下循环
    Java多线程:Thread中的实例方法
    memcached安装问题
    五月的仓颉
    json时间格式化方法
  • 原文地址:https://www.cnblogs.com/graph/p/3063952.html
Copyright © 2011-2022 走看看