题目

image.png

思路

  • 广度遍历二叉树,当出现 null 值时停止遍历,如果此时还有没有遍历到的结点,说明该树非完全二叉树

    代码

    1. public boolean isCompleteTree(TreeNode root) {
    2. if (root == null) return true;
    3. Queue<TreeNode> queue = new LinkedList<>();
    4. queue.offer(root);
    5. TreeNode cur;
    6. while ((cur = queue.poll()) != null) {
    7. queue.offer(cur.left);
    8. queue.offer(cur.right);
    9. }
    10. while(!queue.isEmpty()) {
    11. if (queue.poll() != null) return false;
    12. }
    13. return true;
    14. }
    二叉树的完整性检验