Amazon Interview Question

print a tree in level order.

Interview Answer

Anonymous

Apr 28, 2013

public void printTreeByLevel(Node root) { Queue queue = new Queue(); Node tmp = null; string str = null; int nextLevel = 0; int level = 1; queue.Enqueue(root); while (queue.Count != 0) { tmp = queue.Dequeue(); str += tmp.data.ToString(); level--; if (tmp.left != null) { queue.Enqueue(tmp.left); nextLevel++; } if (tmp.right != null) { queue.Enqueue(tmp.right); nextLevel++; } if (level == 0) { Console.WriteLine(str); str = null; level = nextLevel; nextLevel = 0; } } }