題目:
https://leetcode.com/problems/check-completeness-of-a-binary-tree/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| #define MAXN 105
TreeNode* q[MAXN]; int l, r;
class Solution { public: bool isCompleteTree(TreeNode* root) { if(root == nullptr) return true;
l = r = 0; q[r++] = root; bool leaf = false; TreeNode* curr; while(l < r){ curr = q[l++]; if(curr->left == nullptr && curr->right != nullptr) return false; if(leaf && (curr->left != nullptr && curr->right != nullptr)) return false;
if(curr->left != nullptr) q[r++] = curr->left; if(curr->right != nullptr) q[r++] = curr->right;
if(curr->left == nullptr || curr->right == nullptr) leaf = true; } return true; } };
|