由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 请大家 看看这个 Merge k Sorted Lists (Java), 我不太明白
相关主题
[ 每日一课] Sort Listleetcode 上的k way merge
[BSSD]回国一趟回来做题很难进入状态了,顺便问下那个Merge k Sorted请教一个面试算法题
请教各位大牛一个K-way merge 的问题amazon tel interview
弱问一个小问题,leetcode 上merge sorted list请教linked list, 删除最后一个节点
透露两个G的onsite题k sorted array merge大家现场写一个heap?
问一个merge K sorted list的时间复杂度关于reorder list 的总结
这题怎么做?删除node从list, 这个有内存泄露么,怎么释放内存,对于那个被删除的节点?
leetcode上的sorted list to BSTfb面经的一题
相关话题的讨论汇总
话题: temp话题: lists话题: java话题: sorted
进入JobHunting版参与讨论
1 (共1页)
s********e
发帖数: 340
1
原文在这里:
http://www.programcreek.com/2013/02/leetcode-merge-k-sorted-lis
我的理解是,用PriorityQueue将需要合并的一个列表里的元素都加入到这个
PriorityQueue中。
PriorityQueue会自动对所有加入的元素进行排序。
我不明白的是下面这个部分,为什么用q.add(temp.next)再把节点再加入同一个
PriorityQueue中? 完整程序,请看上面给的链接。谢谢! 不太明白下面的部分。
while (q.size() > 0) {
ListNode temp = q.poll();

p.next = temp;

if (temp.next != null)
q.add(temp.next);
p = p.next;
}
l*****a
发帖数: 14598
2
加的明明是temp.next不是temp
BTW, do u know what is linked list?

【在 s********e 的大作中提到】
: 原文在这里:
: http://www.programcreek.com/2013/02/leetcode-merge-k-sorted-lis
: 我的理解是,用PriorityQueue将需要合并的一个列表里的元素都加入到这个
: PriorityQueue中。
: PriorityQueue会自动对所有加入的元素进行排序。
: 我不明白的是下面这个部分,为什么用q.add(temp.next)再把节点再加入同一个
: PriorityQueue中? 完整程序,请看上面给的链接。谢谢! 不太明白下面的部分。
: while (q.size() > 0) {
: ListNode temp = q.poll();
:

s********e
发帖数: 340
3
我当然懂了linked list.
但是你看他的程序,他返回的是 head.next;
但是head.next 应该是null, 在这个程序中,就没有给head.null赋值啊?!
你认真看了这个程序了吗?
下面这段代码的目的是什么?我觉得他只要用ListNode temp = q.peek();返回
PriorityQueue的头节点就行了,while里面其他代码的意义是什么?
while (q.size() > 0) {
ListNode temp = q.poll();
p.next = temp;
//keep adding next element of each list
if (temp.next != null)
q.add(temp.next);
p = p.next;
}

【在 l*****a 的大作中提到】
: 加的明明是temp.next不是temp
: BTW, do u know what is linked list?

l*****a
发帖数: 14598
4
p 不是 head吗?
那你说它用priorityQueue的目的是什么
是为了实现哪个基本数据结构?

【在 s********e 的大作中提到】
: 我当然懂了linked list.
: 但是你看他的程序,他返回的是 head.next;
: 但是head.next 应该是null, 在这个程序中,就没有给head.null赋值啊?!
: 你认真看了这个程序了吗?
: 下面这段代码的目的是什么?我觉得他只要用ListNode temp = q.peek();返回
: PriorityQueue的头节点就行了,while里面其他代码的意义是什么?
: while (q.size() > 0) {
: ListNode temp = q.poll();
: p.next = temp;
: //keep adding next element of each list

s******n
发帖数: 1
5
第一次进入while loop,p就是head,那 p.next = temp;就是给head.next赋值。
linklist的一个节点不要看做一个node,看做一个list,那priorityqueue里面就是几
串list。每次pop完一个元素后,把它所在list的下一个元素提进queue里面。
1 (共1页)
进入JobHunting版参与讨论
相关主题
fb面经的一题透露两个G的onsite题
java 链表里面dummy node 一问?谢谢问一个merge K sorted list的时间复杂度
大牛们帮忙,Rverse Nodes in k-Group这题怎么做?
弱问:leetcode里Convert Sorted List to Binary Search Treeleetcode上的sorted list to BST
[ 每日一课] Sort Listleetcode 上的k way merge
[BSSD]回国一趟回来做题很难进入状态了,顺便问下那个Merge k Sorted请教一个面试算法题
请教各位大牛一个K-way merge 的问题amazon tel interview
弱问一个小问题,leetcode 上merge sorted list请教linked list, 删除最后一个节点
相关话题的讨论汇总
话题: temp话题: lists话题: java话题: sorted