¿Cómo imprimiría los datos en un árbol binario, nivel por nivel, comenzando en la parte superior?

Esta es una pregunta de entrevista.

Pienso en una solución. Utiliza la cola.

public Void BFS()    
{   
   Queue q = new Queue();    
   q.Enqueue(root);    
   Console.WriteLine(root.Value);  

   while (q.count > 0)  
   {  
      Node n = q.DeQueue();  
      if (n.left !=null)  
       {  
          Console.Writeln(n.left);  
          q.EnQueue(n.left);  
        }   
       if (n.right !=null)  
       {  
          Console.Writeln(n.right);  
          q.EnQueue(n.right);  
        }   
    }
}    

¿Alguien puede pensar en una solución mejor que esta, que no use la Cola?

Respuestas a la pregunta(11)

Su respuesta a la pregunta