import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param root TreeNode类 * @return bool布尔型 */ public boolean isCompleteTree (TreeNode root) { // write code here if(root==null||root.left==null&&root.right==null){ return true; } //层序遍历,将二叉树遍历到队列中, // 如果前面出现空节点那么后面一定都是空节点, // 将所有的空节点遍历完在队列不为空的时候,如果又出现非空节点即false // // ArrayList<Integer> a = new ArrayList<>(); Queue<TreeNode> q = new LinkedList<>(); //此处不能用ArrayDeque,它不能存储null q.add(root); boolean f = false;//标记是否遇到叶子节点 while(!q.isEmpty()){ TreeNode tmp =q.poll(); if(tmp==null){ f = true; continue; } if(f){ //遇到空节点的情况下又遇到非空节点 return false; } q.add(tmp.left); q.add(tmp.right); } return true; } }