class Solution {
public boolean isCompleteTree(TreeNode root) {
if (root == null) return true;
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(root);
boolean flag = false;
while (!queue.isEmpty()) {
int n = queue.size();
for (int i = 0; i < n; i++) {
TreeNode cur = queue.poll();
if (cur != null) {
if (flag) return false;
queue.offer(cur.left);
queue.offer(cur.right);
} else {
flag = true;
}
}
}
return true;
}
}