import java.util.*
/**
* This problem was asked by Microsoft.
* Print the nodes in a binary tree level-wise. For example, the following should print 1, 2, 3, 4, 5.
1
/ \
2 3
/ \
4 5
* */
class Problem_994 {
/*
* solution: BFS, Time:O(n), Space:O(n)
* */
fun printLevel(node: Node) {
val queue = LinkedList<Node>()
queue.offer(node)
while (queue.isNotEmpty()) {
//pop from head
val cur = queue.pop()
//println it out
println(cur.value)
//add into tail
if (cur.left != null) {
queue.offer(cur.left)
}
//add into tail
if (cur.right != null) {
queue.offer(cur.right)
}
}
}
}