LeetCode 958

https://leetcode.cn/problems/check-completeness-of-a-binary-tree/description/

难度:中等

高频面试题汇总:https://www.yuweihung.com/posts/2025/lc-hot/

层序遍历二叉树。如果遍历到了一个非空节点之前遍历过空节点,就不是完全二叉树。

时间复杂度:O(N),其中 N 是树节点个数。

空间复杂度:O(N)。

class Solution {
public:
    bool isCompleteTree(TreeNode* root) {
        vector<TreeNode*> cur;
        cur.push_back(root);
        bool flag = false;
        while (cur.size() > 0) {
            vector<TreeNode*> nxt;
            for (TreeNode* node: cur) {
                if (node == nullptr) {
                    flag = true;
                    continue;
                }
                if (flag) {
                    return false;
                }
                nxt.push_back(node->left);
                nxt.push_back(node->right);
            }
            cur = move(nxt);
        }
        return true;
    }
};