March 20, 2019

958. Check Completeness of a Binary Tree

958. Check Completeness of a Binary Tree

看到第一个 node 不为空,之后所有的 node 只要有一个为空就 return false

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public boolean isCompleteTree(TreeNode root) {
        Queue<TreeNode> queue = new LinkedList<>();
        queue.offer(root);
        // If the flag is set to true, there should not be any child nodes afterwards
        boolean flag = false;
        while(!queue.isEmpty()) {
            TreeNode cur = queue.poll();
            if (cur.left == null) {
                flag = true;
            } else if (flag) {
                return false;
            } else {
                queue.offer(cur.left);
            }
            if (cur.right == null) {
                flag = true;
            } else if (flag) {
                return false;
            } else {
                queue.offer(cur.right);
            }            
        }
        return true;   
    }
}
comments powered by Disqus