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 };
  • 相关阅读:
    POJ 2723 Get Luffy Out(2-SAT)
    ZOJ 3613 Wormhole Transport
    HDU 4085 Peach Blossom Spring
    NBUT 1221 Intermediary
    NBUT 1223 Friends number
    NBUT 1220 SPY
    NBUT 1218 You are my brother
    PAT 1131. Subway Map (30)
    ZSTU OJ 4273 玩具
    ZSTU OJ 4272 最佳淘汰算法
  • 原文地址:https://www.cnblogs.com/chasuner/p/mergeKList.html
Copyright © 2011-2022 走看看