zoukankan      html  css  js  c++  java
  • LeetCode-Merge k Sorted Lists

    哎,这两天都是在做水题,做水题都还一点状态都木有,

    经常一道题调好久~~~

    哎,好拙计!

     1 /**
     2  * Definition for singly-linked list.
     3  * struct ListNode {
     4  *     int val;
     5  *     ListNode *next;
     6  *     ListNode(int x) : val(x), next(NULL) {}
     7  * };
     8  */
     9 class Solution {
    10 public:
    11     ListNode *mergeKLists(vector<ListNode *> &lists) {
    12         // Start typing your C/C++ solution below
    13         // DO NOT write int main() function
    14         if (lists.empty()) {
    15             return NULL;
    16         }
    17         ListNode *res = NULL;
    18         ListNode *pre;
    19         ListNode *cur;
    20         vector<ListNode *> prelist = lists;
    21         bool first = false;
    22         while (!prelist.empty()) {
    23             bool val = false;
    24             vector<ListNode *> curlist;
    25             for (size_t i = 0; i < prelist.size(); ++i) {
    26                 if (prelist[i] == NULL) {
    27                     continue;
    28                 }
    29                 if (!val) {
    30                     val = true;
    31                     cur = prelist[i];
    32                     continue;
    33                 }
    34                 if (prelist[i]->val < cur->val) {
    35                     curlist.push_back(cur);
    36                     cur = prelist[i];
    37                 }
    38                 else {
    39                     curlist.push_back(prelist[i]);
    40                 }
    41             }
    42             if(!val) {
    43                 if (res == NULL) {
    44                     return NULL;
    45                 }
    46                 break;
    47             }
    48             curlist.push_back(cur->next);
    49             prelist = curlist;
    50             if (!first) {
    51                 first = true;
    52                 res = cur;
    53                 pre = cur;
    54             }
    55             else {
    56                 pre->next = cur;
    57                 pre = cur;
    58             }
    59         }
    60         if (res == NULL) {
    61             return res;
    62         }
    63         cur->next = NULL;
    64         return res;
    65     }
    66 };
  • 相关阅读:
    冷水花
    石竹
    红花酢浆草
    紫鸭跖草
    吊竹梅
    花叶络石
    牡丹
    CF1190D Tokitsukaze and Strange Rectangle
    CF1178D Prime Graph
    CF958E2 Guard Duty (medium)
  • 原文地址:https://www.cnblogs.com/chasuner/p/mergeKList.html
Copyright © 2011-2022 走看看