Obtener a todos los niños en el mismo nivel de árbol binario
Quiero mostrar a todos los niños en el mismo nivel de árbol. Entonces, si tengo un árbol como este:
A
B C D
E F G H I J
por ejemplo, el nivel 3 devolvería nodos E, F, G, H, I y J. Tengo un método dentro deTreeNode
clase, que devuelve todos los hijos del nodo dado, así que pensé en hacer algo como esto:
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();
}
pero luego me di cuenta de que solo iteraba a través de los niños de primer nivel, ¿así que probablemente tenga que hacer esto de manera recursiva? Gracias de antemano, Amar!