Given a binary tree, visit all nodes in level order, starting from the root level.
This can be solved by queueing and dequeueing nodes of the tree in a loop. Each node is enqueued, dequeued, and printed once.
The loop runs once for each node, which makes time complexity O(n) for a tree with n nodes.
void levelTraversal(Node root) {
if (root == null)
return
Queue q = new Queue()
q.enqueue(root)
while (Node n = q.dequeue()) {
print(n.value)
if (n.left)
q.enqueue(n.left)
if (n.right)
q.enqueue(n.right)
}
}