/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * }; */ class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param root TreeNode类 * @return bool布尔型 */ bool isCompleteTree(TreeNode* root) { queue<TreeNode*>p; p.push(root); bool fl = true, fg = false; while (!p.empty()) { TreeNode* k = p.front(); p.pop(); if (k == nullptr) { fg = true; continue; } if (fg && k != nullptr) { fl = false; break; } p.push(k->left), p.push(k->right); } return fl; } };