Skip to content

Commit 03eac5d

Browse files
Create 1609-even-odd-tree.java
1 parent 6f8ff59 commit 03eac5d

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

java/1609-even-odd-tree.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/*_____________________________
2+
Time Complexity: O(n)
3+
Space Complexity: O(n)
4+
_______________________________*/
5+
6+
class Solution {
7+
public boolean isEvenOddTree(TreeNode root) {
8+
Queue<TreeNode> q = new LinkedList<>();
9+
q.add(root);
10+
boolean evenLevel = true;
11+
12+
while(!q.isEmpty()){
13+
int prev = (evenLevel)? Integer.MIN_VALUE: Integer.MAX_VALUE;
14+
int sz = q.size();
15+
16+
for(int i = 0; i < sz; i++){
17+
TreeNode curr = q.poll();
18+
int nodeVal = curr.val;
19+
20+
if((evenLevel && nodeVal % 2 == 0) || (!evenLevel && nodeVal % 2 != 0))
21+
return false;
22+
if((evenLevel && nodeVal <= prev) || (!evenLevel && nodeVal >= prev))
23+
return false;
24+
25+
prev = nodeVal;
26+
27+
if(curr.left != null)
28+
q.add(curr.left);
29+
if(curr.right != null)
30+
q.add(curr.right);
31+
}
32+
evenLevel = !evenLevel;
33+
}
34+
return true;
35+
}
36+
}

0 commit comments

Comments
 (0)