【发布时间】:2020-02-20 21:36:40
【问题描述】:
我想在同一级别的树上显示所有孩子。所以如果我有一棵这样的树:
A
B C D
E F G H I J
例如,级别 3 将返回 E、F、G、H、I 和 J 节点。我在TreeNode 类中有一个方法,它返回给定节点的所有子节点,所以我想这样做:
static Collection<ITreeNode<IProduct>> getOnLevel(ITree<IProduct> tree, int level)
{
Collection<ITreeNode<IProduct>> temp;
int i;
Iterator<ITreeNode<IProduct>> iterator = tree.getRoot().getChildren().iterator();
for(i=0; i<=(level); i++)
{
while(iterator.hasNext())
{
ITreeNode<IProduct> elem = iterator.next();
if(i == (level))
{
temp = elem.getChildren();
return temp;
}
}
}
return tree.getRoot().getChildren();
}
但后来我意识到我只是遍历第一级孩子,所以我可能不得不以某种方式递归地做到这一点? 提前致谢,阿马尔!
【问题讨论】:
-
对树进行 BFS 遍历。
-
@NiVeR 是的,我理解二叉树上 BFS 遍历的概念,但是如果树可以有多个孩子,而不仅仅是两个,它会是什么样子?如果它是一棵二叉树,我可以轻松地递归调用两次相同的函数,但是如果有更多的孩子,我该怎么做?
标签: java tree iterator treenode