归并排序思想 leetcode 23. Merge k Sorted Lists
来源:互联网 发布:广电网络股票分析 编辑:程序博客网 时间:2024/04/29 04:55
题目链接 Leetcode 23
之前写归并排序都是在数组层面上进行操作,这一题是在单链表层面实现归并排序,要理解归并排序的基础原理就不难。
注意:特殊情况 空链表 空数组 等
public class Solution { public ListNode mergeKLists(ListNode[] lists) { int len = lists.length; if(len==0) return null; ListNode s = merge(lists,0,len-1); return s; } public static ListNode merge2node(ListNode a, ListNode b){ ListNode s = new ListNode(0); ListNode p = s; while(a!=null && b!=null){ if(a.val<b.val){ s.next = a; s=s.next; a = a.next; }else{ s.next = b; s=s.next; b=b.next; } } if(a!=null){ s.next = a; s=s.next; a=a.next; } if(b!=null){ s.next = b; s=s.next; b=b.next; } return p.next; } public static ListNode merge(ListNode[] lists,int i,int j){ ListNode s;if(i<j){ int mid = (i+j)/2; ListNode a = merge(lists,i,mid); ListNode b = merge(lists,mid+1,j); s = merge2node(a,b);}else{s = lists[i];}return s; }}
0 0
- 归并排序思想 leetcode 23. Merge k Sorted Lists
- [leetcode] 【排序】 23. Merge k Sorted Lists
- [leetcode-排序]--23. Merge k Sorted Lists
- 【leetcode】Merge k Sorted Lists (归并排序)
- LeetCode Merge k Sorted Lists 归并
- LeetCode | Merge k Sorted Lists(归并k个链表)
- leetcode 23. LeetCode Merge k Sorted Lists
- LeetCode 23 Merge k Sorted Lists(归并)
- #23 Merge k Sorted Lists (N路归并排序)
- [LeetCode]23.Merge k Sorted Lists
- LeetCode --- 23. Merge k Sorted Lists
- LeetCode 23.Merge k Sorted Lists
- [Leetcode] 23. Merge k Sorted Lists
- 【LeetCode】23.Merge k Sorted Lists
- [leetcode] 23.Merge k Sorted Lists
- Leetcode-23.Merge k Sorted Lists
- [Leetcode]23. Merge k Sorted Lists @python
- leetcode 23. Merge k Sorted Lists
- Google翻译网站
- redis整合spring mybatis --缓存方案
- Machine Learning-PCA(Principal Component Analysis)
- JAVA中使用DBCP做数据库连接池
- Java过滤器与SpringMVC拦截器之间的关系与区别
- 归并排序思想 leetcode 23. Merge k Sorted Lists
- Android程序员学PHP开发(18)-include-closure-anonymous-PhpStorm
- 机器学习算法
- 关于app刚启动时出现的白屏问题
- wc命令
- Machine Learning-bias & variance
- MyBatis批量插入数据
- adb常用命令
- Linux系统安装Python PIL模块