[Leetcode] Merge k Sorted Lists
来源:互联网 发布:万能指算法 编辑:程序博客网 时间:2024/06/05 00:31
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* merge2lists(ListNode* l1, ListNode* l2){ ListNode* Newhead=new ListNode(0); ListNode* pre=Newhead; while(l1!=NULL||l2!=NULL){ int va=l1==NULL? INT_MAX:l1->val; int vb=l2==NULL? INT_MAX:l2->val; if(va>=vb){ pre->next=l2; l2=l2->next; } else{ pre->next=l1; l1=l1->next; } pre=pre->next; } pre=Newhead->next; delete Newhead; return pre; } /* ListNode *mergeKLists(vector<ListNode *> &lists) { if(lists.empty()) return NULL; //ListNode dummy(0); ListNode* pre=lists[0]; //dummy.next=pre; for(int i=1; i<lists.size(); i++){ pre=merge2lists(pre,lists[i]); } return pre; } */ ListNode *mergeKLists(vector<ListNode *> &lists) { int n=lists.size(); if(n==0)return NULL; while(n>1){ int k=(n+1)/2; for (int i=0;i<n/2;i++){ lists[i]=merge2lists(lists[i],lists[i+k]); } n=k; } return lists[0]; }};
0 0
- LeetCode: Merge k Sorted Lists
- LeetCode Merge k Sorted Lists
- LeetCode: Merge k Sorted Lists
- [Leetcode] Merge k Sorted Lists
- [Leetcode] Merge k Sorted Lists
- [Leetcode] Merge K sorted lists
- [LeetCode]Merge k Sorted Lists
- [LeetCode] Merge k Sorted Lists
- LeetCode-Merge k Sorted Lists
- LeetCode: Merge k Sorted Lists
- LeetCode - Merge k Sorted Lists
- LeetCode | Merge k Sorted Lists
- 【leetcode】Merge k Sorted Lists
- Leetcode: Merge k Sorted Lists
- <Leetcode>Merge k Sorted Lists
- [LeetCode] Merge K sorted lists
- [LeetCode] Merge k Sorted Lists
- 【Leetcode】Merge k Sorted Lists
- [Leetcode] Reverse Nodes in k-Group
- 环保新标准:企业排污费增长一倍
- ffmpeg群里讨论编译
- I/O Redirection
- discuz二级、三级导航高亮,文章内容页跟随三级导航高亮的方法
- [Leetcode] Merge k Sorted Lists
- Eclipse中用Maven插件建立Web工程
- linux内存操作--ioremap和mmap学习笔记
- CGContextAddLines和CGContextAddLineToPoint在线条半透明时候的区别
- Linux内核源码树的建立
- C语言第四天
- wince下的编译选项
- 监控USB设备插拔
- tomcat指定特定的jdk