【发布时间】:2012-10-09 20:49:39
【问题描述】:
为了对通用树进行级别顺序(BFS)遍历,我为下面链接中提到的代码编写了以下显示函数。问题是每个级别都打印了两次。谁能告诉我为什么。 没有这个函数的原始代码可以在下面的链接中找到,以防有人需要整个实现,否则只需查看下面的 displayBFS 函数并告诉我为什么值重复
Level Order traversal of a generic tree(n-ary tree) in java
谢谢!
void displayBFS(NaryTreeNode n)
{
Queue<NaryTreeNode> q = new LinkedList<NaryTreeNode>();
if(n!=null)
{
q.add(n);
System.out.println(n.data);
}
while(n!=null)
{
for(NaryTreeNode x:n.nary_list)
{
q.add(x);
System.out.println(x.data );
}
n = q.poll();
}
}
当前树结构供参考:
root(100)
/ | \
90 50 70
/ \
20 30 200 300
输出:
100
90
50
70
90
50
70
20
30
200
300
20
30
200
300
【问题讨论】:
标签: java algorithm generics tree tree-traversal