【发布时间】:2014-01-03 11:08:17
【问题描述】:
如果我们有一棵二叉树:
7
/ \
5 6
/\ /\
2 3 1 4
/
5
如何打印以下输出?
[7],
[5,6]
[2,3,1,4]
[5]
意味着做一个 BFS 并将每个级别的节点存储在一个列表中,然后打印该列表?
我能够在 BFS 中遍历,但我无法找到树中每个元素的正确级别。
如何找到每个节点的正确级别,并使用节点对象的级别值丰富节点对象?
这是我的逻辑:
BFS 中的遍历
用其级别值丰富树的每个节点
在列表中存储节点
遍历列表,创建
<Level,List<Node>>的Map将节点级别存储在
Set<Integer>中,然后转换为列表并对其进行排序。遍历新创建的层级列表,从地图中找到该列表上的相应节点并打印出来
【问题讨论】:
-
@AurA 抱歉,我浏览了你的链接,但它没有建议在 BFS 中遍历时如何存储每个节点的级别,这是我的问题..
-
@AurA 在我看来不像是复制品。 OP 没有询问本地 BFS。考虑“我能够使用 BFS 进行遍历”。
-
节点 5 重复,是故意的吗?
-
@PhamTrung No.. 错误地添加了..