958. Check Completeness of a Binary Tree
//https://leetcode.com/problems/check-completeness-of-a-binary-tree/description/
class TreeNode(var `val`: Int) {
var left: TreeNode? = null
var right: TreeNode? = null
}
class Solution {
fun isCompleteTree(root: TreeNode?): Boolean {
if (root == null) {
return false
}
val linkedList = LinkedList<TreeNode>()
linkedList.add(root)
while (linkedList.peek()!=null) {
//if popped node is not null, then add its left and right child, no matter if they are null or not
val cur = linkedList.poll()
linkedList.offer(cur.left)
linkedList.offer(cur.right)
}
//get right node first
while (linkedList.isNotEmpty() && linkedList.peek()==null){
linkedList.poll()
}
return linkedList.isEmpty()
}
}