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

解析:合并k个已经有序的单链表,使其最终成为一个有序的单链表。原理就是归并排序,递归运算。基本算法recusion 与 merge

编码:

public ListNode mergeKLists(ListNode[] lists) {
if(lists == null || lists.length == 0)
return null;
if(lists.length == 1)
return lists[0];
return recursion(lists,0,lists.length - 1);
}
//recursion
public ListNode recursion(ListNode[] lists,int start,int end){
if(start == end)//只有一个链表
return lists[start];
if(start < end){
int mid = start + (end - start) / 2; //注意:这里防止整数越界的处理,start+(end-start)/2
ListNode l1 = recursion(lists,start,mid);
ListNode l2 = recursion(lists,mid + 1,end);
return merge(l1,l2);
} else
return null; }
//merge
public ListNode merge(ListNode l1,ListNode l2){
ListNode head = new ListNode(0); //创建一个头结点,最后还要删掉
ListNode p = head;
while(l1 != null && l2 != null){
if(l1.val <= l2.val){
p.next = l1;
l1 = l1.next;
} else{
p.next = l2;
l2 = l2.next;
}
p = p.next;
} p.next = (l1 != null) ? l1 : l2;
return head.next;// head的下一个节点是第一个数据结点
}

最新文章

  1. 【leetcode】Remove Nth Node From End of List
  2. 搜索表头的例子-jqueryEasyUi
  3. RDIFramework.NET ━ 9.9 角色权限管理 ━ Web部分
  4. Opencv Cookbook阅读笔记(四):用直方图统计像素
  5. VMware的四种网络连接方式
  6. iOS 用protocol 和 用继承小体会
  7. CA*Layer(CAShapeLayer--CATextLayer)
  8. nginx 多域名配置 (nginx如何绑定多个域名)
  9. u-boot Makefile整体解析
  10. PAT1003
  11. ECSHOP info: Can&#39;t Connect MySQL Server(localhost:3306)!
  12. python机器学习实战(一)
  13. C++迭代器的使用和操作总结
  14. Fragment详解-android学习之旅(四十八)
  15. 【爬虫】Xpath高级用法
  16. 常见mysql的慢查询优化方式
  17. 【Selenium】【BugList8】126邮箱定位不到“退出”按钮:Message: TypeError: can&#39;t access dead object
  18. SQLServer 的case when语句使用实现统计
  19. Jackson(使用注解)
  20. Codeforces Round #341 (Div. 2) E. Wet Shark and Blocks dp+矩阵加速

热门文章

  1. python 安装wheel .whl文件
  2. LOJ6285 数列分块入门9(分块)
  3. 题解——Codeforces Round #508 (Div. 2) T1 (模拟)
  4. Images之Dockerfile中的命令1
  5. Latex 算法过长 分页显示方法
  6. strlen函数,strcat函数,strcpy函数,strncpy函数,strcmp函数
  7. Bootstrap 固定导航条
  8. Echarts 地图上显示数值
  9. c++中static的用法详解
  10. 把一个List拆分为几个大小一样的List