LeetCode Merge k Sorted Lists(有序单链表数组的合并)
来源:互联网 发布:php abstract class 编辑:程序博客网 时间:2024/05/17 17:41
题意:给出一个有序单链表数组,将其合并成一个有序单链表
思路:将其转化成两个单链表合并的问题,用递归方式来实现
代码如下:
public class Solution{ private ListNode mergeTwo(ListNode l1, ListNode l2) { if (null == l1) return l2; if (null == l2) return l1; if (l1 == l2) return l1; if (l1.val < l2.val) { l1.next = mergeTwo(l1.next, l2); return l1; } else { l2.next = mergeTwo(l1, l2.next); return l2; } } private ListNode reMerge(ListNode[] lists, int left, int right) { if (right - left < 2) { return mergeTwo(lists[left], lists[right]); } else { int mid = (left + right) >> 1; return mergeTwo(reMerge(lists, left, mid), reMerge(lists, mid + 1, right)); } } public ListNode mergeKLists(ListNode[] lists) { if (null == lists || 0 == lists.length) return null; return reMerge(lists, 0, lists.length - 1); }}
0 0
- LeetCode Merge k Sorted Lists(有序单链表数组的合并)
- Leetcode:Merge Two Sorted Lists 合并两个有序单链表
- leetcode解题之23.Merge k Sorted Lists Java版本(合并k个有序的链表)
- Merge k Sorted Lists 合并k个有序链表@LeetCode
- LeetCode OJ 之 Merge k Sorted Lists(合并k个有序链表)
- Leetcode #23 Merge k Sorted Lists 合并K个有序列表 解题报告
- 合并K个有序链表(LeetCode:Merge k Sorted Lists)
- 合并k个有序链表 Merge k Sorted Lists
- Merge k Sorted Lists(合并k个有序链)
- leetcode Merge Sorted Array 合并有序数组
- Merge Two Sorted Lists 合并两个有序链表@LeetCode
- [LeetCode]Merge Two Sorted Lists-合并两个有序链表
- Leetcode Merge Two Sorted Lists 合并两个有序链表
- (LeetCode)Merge Two Sorted Lists --- 合并两个有序序列
- Leetcode Merge Two Sorted Lists(合并两个有序表)
- leetcode Merge Two Sorted Lists 合并两个有序链表
- Leetcode Merge k Sorted Lists 合并k个链表
- LeetCode 23. Merge k Sorted Lists(K路合并)
- C++基础知识(一)—— C++程序结构
- 11个基础的HTML5动画工具
- Binder入门
- Android架构之MVP升级版
- C++基础知识(二)—— 变量和数据类型
- LeetCode Merge k Sorted Lists(有序单链表数组的合并)
- nginx内置变量详解
- C++基础知识(三)—— 常量
- tomcat各目录(文件)作用
- 每个程序员都应该知道的8个Linux命令
- C++基础知识(四)—— 操作符/运算符
- 单链表的插入(完整版程序c语言实现,以字符串为数据)
- Oracle索引小结
- Java的运行原理(转)