解题思路:
1.比较list[i]->val的大小,更新lists[i]=list[i]->next。最后效率会比较低
2.按照merge2的思路,1+2->result,result+3->result,….以此类推。这个效率也不高
代码如下(思路2)
1 | /** |
运行结果:316ms,超过7.19%
第三种思路:参考了“喜唰唰”的博客。这种算是第一种思路的优化方法,使用priority_queue。将lists中的每个节点放入priority_queue中,创建一个min_heap。之后每从queue中取出一个节点,则将该节点在其list中的下一个节点插入,以此类推直到全部节点都经过priority queue。
1 | class Solution { |
运行时间:52ms,超过26.34%
ref:http://bangbingsyb.blogspot.com/2014/11/leetcode-merge-k-sorted-lists.html