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!

Respuestas a la pregunta(1)

Su respuesta a la pregunta