Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 9bca5e1

Browse files
committed
Added Even Odd Tree.java
1 parent 2519e6a commit 9bca5e1

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

Medium/Even Odd Tree.java

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
/**
2+
* Definition for a binary tree node.
3+
* public class TreeNode {
4+
* int val;
5+
* TreeNode left;
6+
* TreeNode right;
7+
* TreeNode() {}
8+
* TreeNode(int val) { this.val = val; }
9+
* TreeNode(int val, TreeNode left, TreeNode right) {
10+
* this.val = val;
11+
* this.left = left;
12+
* this.right = right;
13+
* }
14+
* }
15+
*/
16+
class Solution {
17+
public boolean isEvenOddTree(TreeNode root) {
18+
Queue<TreeNode> queue = new LinkedList<>();
19+
queue.add(root);
20+
int remainderExpected = 1;
21+
while (!queue.isEmpty()) {
22+
int size = queue.size();
23+
Integer prev = null;
24+
while (size-- > 0) {
25+
TreeNode removed = queue.remove();
26+
if (removed.val % 2 != remainderExpected) {
27+
return false;
28+
}
29+
if (prev != null) {
30+
if (remainderExpected == 1 && removed.val <= prev) {
31+
return false;
32+
}
33+
if (remainderExpected == 0 && removed.val >= prev) {
34+
return false;
35+
}
36+
}
37+
prev = removed.val;
38+
if (removed.left != null) {
39+
queue.add(removed.left);
40+
}
41+
if (removed.right != null) {
42+
queue.add(removed.right);
43+
}
44+
}
45+
remainderExpected = remainderExpected == 1 ? 0 : 1;
46+
}
47+
return true;
48+
}
49+
}

0 commit comments

Comments
 (0)