File tree Expand file tree Collapse file tree 1 file changed +49
-0
lines changed Expand file tree Collapse file tree 1 file changed +49
-0
lines changed Original file line number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments