//1609. 奇偶树
//使用队列实现bfs,每层特判一下就可以,相对简单
class Solution {
public:
bool isEvenOddTree(TreeNode* root) {
if (root == nullptr) return true;
queue<TreeNode*>que;
que.push(root);
int vis = 1;
while (que.size()) {
int cnt = que.size();
if (vis & 1) {
int minx = -1;
while (cnt--) {
TreeNode* node = que.front(); que.pop();
if (node->val <= minx || node->val % 2 == 0) return false;
minx = node->val;
if (node->left != nullptr) que.push(node->left);
if (node->right != nullptr) que.push(node->right);
}
}
else {
int mx = 1e6 + 10;
while (cnt--) {
TreeNode* node = que.front(); que.pop();
if (node->val >= mx || node->val % 2 == 1) return false;
mx = node->val;
if (node->left != nullptr) que.push(node->left);
if (node->right != nullptr) que.push(node->right);
}
}
vis++;
}
return true;
}
};
LeetCode1609. 奇偶树
最新推荐文章于 2024-08-03 20:10:04 发布