Even Odd Tree LeetCode solution in C++

1
class Solution {
2
public:
3
bool isEvenOddTree(TreeNode *root) {
4
queue<TreeNode *> q;
5
vector<vector<int>> ans;
6
if (root == NULL) return true;
7
q.push(root);
8
int j = 0;
9
while (q.empty() != true) {
10
vector<int> v;
11
int n = q.size();
12
for (int i = 0; i < n; i++) {
13
TreeNode *t = q.front();
14
q.pop();
15
v.push_back(t->val);
16
if (t->left) q.push(t->left);
17
if (t->right) q.push(t->right);
18
}
19
if (j % 2 == 0) {
20
for (int k = 0; k < v.size() - 1; k++) {
21
if (v[k] % 2 == 0) return false;
22
if (v[k] >= v[k + 1]) return false;
23
}
24
if (v[v.size() - 1] % 2 == 0) return false;
25
} else {
26
for (int k = 0; k < v.size() - 1; k++) {
27
if (v[k] % 2 == 1) return false;
28
if (v[k] <= v[k + 1]) return false;
29
}
30
if (v[v.size() - 1] % 2 == 1) return false;
31
}
32
j++;
33
ans.push_back(v);
34
}
35
return true;
36
}
37
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0