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

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

原题链接http://oj.leetcode.com/problems/merge-k-sorted-lists/

题目描述:

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

题解:

  这是个典型的分治题,用递归,不断平分,解决merge两个有序链表的小问题即可。

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 *merge(ListNode* A,ListNode* B){12         if(A==NULL && B==NULL)13             return NULL;14         if(A == NULL)15             return B;16         if(B == NULL)17             return A;18         ListNode *p = A;19         ListNode *q = B;20         ListNode *res = NULL;21         ListNode *pre = NULL;22         if(p->val<=q->val){23             res = p;24             p = p->next;25             pre = res;26         }else{27             res = q;28             q = q->next;29             pre = res;30         }31         while(p!=NULL && q!=NULL){32             if(p->val<=q->val){33                 pre->next = p;34                 pre = p;35                 p = p->next;36             }else{37                 pre->next = q;38                 pre = q;39                 q = q->next;40             }41         }42         while(p!=NULL){43             pre->next = p;44             pre = p;45             p = p->next;46         }47         while(q!=NULL){48             pre->next = q;49             pre = q;50             q = q->next;51         }52         pre->next = NULL;53         return res;54     }55     56     ListNode *mergeKLists(vector
&lists) {57 int size = lists.size();58 if(size == 0)59 return NULL;60 if(size == 1)61 return lists[0];62 vector
A,B;63 for(int i=0; i

 

 

转载于:https://www.cnblogs.com/codershell/p/3592992.html

你可能感兴趣的文章
作业--词法分析的源代码与运行结果
查看>>
Apache错误:(20014)Internal error: Error retrieving pid file logs/httpd.pid
查看>>
Java并发编程:线程封闭和ThreadLocal详解
查看>>
Java多线程——线程池使用示例
查看>>
怎么部署java项目(从搭建环境说起)
查看>>
mariadb安装配置
查看>>
LXPanel自定义添加应用程序到快速启动栏
查看>>
近日工作与生活梗概
查看>>
爬虫,第五次实战之(肯德基地址)
查看>>
SAP CRM 忠诚度相关表的关系图
查看>>
云计算技术前景怎么样?云计算开发学院分享
查看>>
tools
查看>>
Linq update
查看>>
VC各种链接错的解决办法【转】http://www.2cto.com/kf/201203/124100.html
查看>>
Java入门第二季——第4章 多态
查看>>
第七章 路由 77 路由-使用children属性实现路由嵌套
查看>>
HTML5+CSS 静态网页-极米商城
查看>>
java反射
查看>>
SQL基础(三):SQL命令
查看>>
【bioinfo】生物信息学——代码遇见生物学的地方
查看>>