Leetcode: Merge k Sorted Lists
来源:互联网 发布:淘宝优惠券怎么设置 编辑:程序博客网 时间:2024/06/15 18:45
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.
Divide and conquer: Divide the list into two parts, and use recursion to divide the two parts and merge. Time complexity O(nklogk), n is the length of the longest linked list. Space complexity is the heap size O(logk)
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */public class Solution { public ListNode mergeKLists(List<ListNode> lists) { if (lists == null || lists.size() == 0) { return null; } if (lists.size() == 1) { return lists.get(0); } ListNode p1 = mergeKLists(lists.subList(0, lists.size() / 2)); ListNode p2 = mergeKLists(lists.subList(lists.size() / 2, lists.size())); return merge2Lists(p1, p2); } private ListNode merge2Lists(ListNode p1, ListNode p2) { if (p1 == null) return p2; ListNode dummy = new ListNode(0); dummy.next = p1; ListNode h1 = dummy; ListNode h2 = h1.next; while (p2 != null) { if (h2 == null) { h1.next = p2; break; } if (p2.val < h2.val) { ListNode temp = p2.next; h1.next = p2; p2.next = h2; p2 = temp; } h1 = h1.next; h2 = h1.next; } return dummy.next; }}
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
- Selenium在使用中的一些常用方法
- (statistic)你所不知道的P值--对统计学的批判
- windows安装storm
- selenium元素定位
- OSX中查看端口情况
- Leetcode: Merge k Sorted Lists
- 算法学习建议
- 百度地图:自定义结果面板+分页+图层标注
- 我要创业
- VC加载初始化GDI+方法
- PHP 强制类型转换
- 一步一步学zedboard之八利用SDK生成BOOT.BIN文件
- pthread_key_t 线程存储相关
- 动态规划之最长递增子序列 ,最长公共子序列