博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
23. Merge k Sorted Lists
阅读量:4975 次
发布时间:2019-06-12

本文共 1620 字,大约阅读时间需要 5 分钟。

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

Example:

Input:[  1->4->5,  1->3->4,  2->6]Output: 1->1->2->3->4->4->5->6

AC code:

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    ListNode* mergeKLists(vector
& lists) { if (lists.size() == 0) { return nullptr; } while (lists.size() > 1) { lists.push_back(mergeTowLists(lists[0], lists[1])); lists.erase(lists.begin()); lists.erase(lists.begin()); } return lists.front(); } ListNode* mergeTowLists(ListNode* first, ListNode* second) { if (first == nullptr) { return second; } if (second == nullptr) { return first; } // 这个地方first是一个指向链表的指针所以用->而不用. if (first->val <= second->val) { // 这里的递归调用,当满足条件的时候mergeTowLists()可以先不用管,最后递归出来的时候会将满足条件的链表返回 // 可以先从递归的最后一个条件考虑 first->next = mergeTowLists(first->next, second); return first; } else { second->next = mergeTowLists(first, second->next); return second; } }};

Runtime: 56 ms, faster than 26.25% of C++ online submissions for Merge k Sorted Lists.

 

                  递归的最后一个:

return:                      ->  6

return:                 ->   5    ->   6

                 4   ->   5    ->   6

            . . . . .

return  1  ->  1  ->  2  ->  3  ->  4  ->   4   ->   5 ->   6

 

转载于:https://www.cnblogs.com/ruruozhenhao/p/9745892.html

你可能感兴趣的文章
html阴影效果怎么做,css 内阴影怎么做
查看>>
BZOJ1026: [SCOI2009]windy数
查看>>
样板操作数
查看>>
组件:slot插槽
查看>>
Nginx配置文件nginx.conf中文详解(转)
查看>>
POJ 1308 Is It A Tree?(并查集)
查看>>
N进制到M进制的转换问题
查看>>
springIOC第一个课堂案例的实现
查看>>
求输入成绩的平均分
查看>>
php PDO (转载)
查看>>
wordpress自动截取文章摘要代码
查看>>
[置顶] 一名优秀的程序设计师是如何管理知识的?
查看>>
highcharts 图表实例
查看>>
highcharts曲线图
查看>>
extjs动态改变样式
查看>>
宏定义
查看>>
笔记:git基本操作
查看>>
生成php所需要的APNS Service pem证书的步骤
查看>>
JavaWeb之JSON
查看>>
HOT SUMMER 每天都是不一样,积极的去感受生活 C#关闭IE相应的窗口 .
查看>>