leetCode练习(23)
来源:互联网 发布:sketch3 mac 破解汉化 编辑:程序博客网 时间:2024/05/17 04:03
题目:Merge k Sorted Lists
难度:hard
问题描述:
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.
将一个已经排序好的链表数组整合成一个新的排序好了的数组。
解题思路:
思路1:每次读出每个链表的头结点值lists[n].val,找到值最小的节点lists[a],加入res,并将该节点的头结点后移一位,list[a]=list[a].next;
重复以上操作,知道所有节点都加入了res。
实现以上代码后,在leetCode运行显示超时,复杂度太高,每加入一个节点都要循环查找n个链表头结点。查看提示tags,看到关键词heap。想到了堆排序,遂有了思路2
思路2:一次读出每个节点,并加入搜索二叉树,然后利用中序遍历,获得从小到大的值并加入res即可。
具体代码如下:
0 0
- leetCode练习(23)
- leetCode练习(7)
- leetCode练习(9)
- leetCode练习(2)
- leetCode练习(14)
- leetCode练习(3)
- leetCode练习(4)
- leetCode练习(19)
- leetCode练习(18)
- leetCode练习(5)
- leetCode练习(15)
- leetCode练习(20)
- leetCode练习(21)
- leetCode练习(16)
- leetCode练习(17)
- leetCode练习(11)
- leetCode练习(24)
- leetCode练习(22)
- JavaScipt的对象是什么--相当经典的一段话
- map集合总结
- HttpServletResponse对象
- vim常用命令
- mybatis SqlSessionDaoSupport的使用
- leetCode练习(23)
- java数据类型理解(待完整)
- 9. Palindrome Number(判断一个整数是否为回文数)
- CocoaPods最新安装教程
- Unity3D手游开发日记(10) - 资源打包的一些思考
- Hook框架xposed的简单demo
- mybatis补充教程之一:在控制台显示sql语句,类似hibernate show_sql.
- java8接口默认方法二
- Android AlarmManager的简单使用