-
lang
kotlin -
tags
TreeBFSBinary Tree
/**
* Example:
* var ti = TreeNode(5)
* var v = ti.`val`
* Definition for a binary tree node.
* class TreeNode(var `val`: Int) {
* var left: TreeNode? = null
* var right: TreeNode? = null
* }
*/
class Solution {
fun isCompleteTree(root: TreeNode?): Boolean {
// answer must be sequential node with no null -between
val queue: Queue<TreeNode?> = LinkedList<TreeNode?>()
queue.add(root)
// add child to queue by BFS until reached to null
while (queue.peek() != null) {
val node = queue.poll()
queue.add(node?.left)
queue.add(node?.right)
}
// if null captured, not null node must not be found.
while (queue.isNotEmpty()) {
if (queue.poll() != null) return false
}
return true
}
}