LeetCode 958. 二叉树的完全性检验

题目链接:https://leetcode-cn.com/problems/check-completeness-of-a-binary-tree/

Java 代码:

class Solution {
    public boolean isCompleteTree(TreeNode root) {
        if (root == null)   return false;

        Queue<TreeNode> queue = new LinkedList<>();
        queue.offer(root);

        boolean leaf = false;

        while (!queue.isEmpty()) {
            TreeNode node = queue.poll();

            if (leaf && !isLeaf(node)) {
                return false;
            }

            if (node.left != null) {
                queue.offer(node.left);
            } else if (node.right != null) {
                return false;
            }

            if (node.right != null) {
                queue.offer(node.right);
            } else {
                leaf = true;
            }
        }

        return true;
    }

    private boolean isLeaf(TreeNode node) {
        return node.left == null && node.right == null;
    }
}

你可能感兴趣的:(力扣,leetcode,java)