Как бы вы распечатали данные в двоичном дереве, уровень за уровнем, начиная сверху?

Это вопрос интервью

Я думаю о решении. Использует очередь.

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);  
        }   
    }
}    

Может ли кто-нибудь придумать лучшее решение, чем это, которое не использует очередь?

Ответы на вопрос(11)

Ваш ответ на вопрос