m***p 发帖数: 86 | 1 传统做法是两个queue, 一个用于BFS, 另一个专门存储上一个level的所有node
如果只让用一个queue, 请问如何处理?
感谢指导! |
l*****s 发帖数: 774 | 2 一个queue,每层之后push一个null ptr
【在 m***p 的大作中提到】 : 传统做法是两个queue, 一个用于BFS, 另一个专门存储上一个level的所有node : 如果只让用一个queue, 请问如何处理? : 感谢指导!
|
h*****k 发帖数: 420 | 3 或者开始时候算下queue多少个元素,while就多少次 |
m***p 发帖数: 86 | 4 没有第二个queue, 如何能得知每层的结尾?
【在 l*****s 的大作中提到】 : 一个queue,每层之后push一个null ptr
|
s**x 发帖数: 7506 | 5
this is the way, no need two queues at all.
just make sure you get the queue size before the loop.
【在 h*****k 的大作中提到】 : 或者开始时候算下queue多少个元素,while就多少次
|
m***p 发帖数: 86 | 6 也就是要while queue.size()次对吗? 这个可以有, 感谢!
【在 h*****k 的大作中提到】 : 或者开始时候算下queue多少个元素,while就多少次
|
V*********r 发帖数: 666 | 7 一个queue就行,每遍历完一行,就塞一个sentinel value进去 |
J*****n 发帖数: 137 | 8 每次遍历的时候 ,for循环的次数等于 length = queue.size(); 就是上一层的所有节
点,然后left, right 全部 offer进去就OK了. 也就是说用length来控制了每层循环
的次数,而不是用一个queue |
g*********e 发帖数: 14401 | |
f********x 发帖数: 2086 | |
l*****a 发帖数: 14598 | 11 不好意思,好像想错了。
【在 g*********e 的大作中提到】 : : 怎么做?
|
m***p 发帖数: 86 | 12 感谢!
【在 J*****n 的大作中提到】 : 每次遍历的时候 ,for循环的次数等于 length = queue.size(); 就是上一层的所有节 : 点,然后left, right 全部 offer进去就OK了. 也就是说用length来控制了每层循环 : 的次数,而不是用一个queue
|
m***p 发帖数: 86 | 13 可不可以认为这种方法比放置sentinel的方法更好一点点?
【在 J*****n 的大作中提到】 : 每次遍历的时候 ,for循环的次数等于 length = queue.size(); 就是上一层的所有节 : 点,然后left, right 全部 offer进去就OK了. 也就是说用length来控制了每层循环 : 的次数,而不是用一个queue
|
m***p 发帖数: 86 | 14 请问如果是zigzag的level order是不是就需要两个queue了?
【在 J*****n 的大作中提到】 : 每次遍历的时候 ,for循环的次数等于 length = queue.size(); 就是上一层的所有节 : 点,然后left, right 全部 offer进去就OK了. 也就是说用length来控制了每层循环 : 的次数,而不是用一个queue
|