Obtendo todos os filhos no mesmo nível de árvore binária
Quero exibir todas as crianças no mesmo nível de árvore. Então, se eu tenho uma árvore como esta:
A
B C D
E F G H I J
por exemplo, o nível 3 retornaria os nós E, F, G, H, I e J. Eu tenho um método dentroTreeNode
classe, que retorna todos os filhos de um determinado nó, então pensei em fazer algo assim:
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();
}
mas então percebi que apenas itera através de crianças de primeiro nível, então provavelmente tenho que fazer isso de alguma forma recursivamente? Agradecemos antecipadamente, Amar!