题解 | #判断是不是完全二叉树#
判断是不是完全二叉树
https://www.nowcoder.com/practice/8daa4dff9e36409abba2adbe413d6fae
public void test24() { // 存进去的速度快比获取的速度快;每个节点的空节点和左右节点都可以拿到 。 // 我们是可以拿到所有存入队列的一个个节点。包括空节点。 // 完全二叉树的:遇到第一个空节点之后,后面的节点必须全部是空节点。 Integer[] node1 = {1, 2, 3, 4, 5, 6, 7, 8}; TreeNode treeNode = buildTree(node1); boolean completeTree = isCompleteTree(treeNode); System.out.println(completeTree); } public boolean isCompleteTree(TreeNode root) { // write code here Queue<TreeNode> queue = new LinkedList<>(); queue.offer(root); boolean flag = false; while (!queue.isEmpty()) { TreeNode poll = queue.poll(); if (poll == null) { flag = true; } else { if (flag) { return false; } queue.offer(poll.left); queue.offer(poll.right); } } return flag; }