Skip to content

Commit cfb0cdf

Browse files
authored
Create 1609-even-odd-tree.kt
1 parent dd0ec90 commit cfb0cdf

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

kotlin/1609-even-odd-tree.kt

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
class Solution {
2+
fun isEvenOddTree(root: TreeNode?): Boolean {
3+
val q = LinkedList<TreeNode?> ().apply { addLast(root) }
4+
var even = true
5+
6+
while (q.isNotEmpty()) {
7+
var prev = if (isEven) Integer.MIN_VALUE else Integer.MAX_VALUE
8+
9+
repeat (q.size) {
10+
val node = q.removeFirst()!!
11+
12+
if (even && (node.`val` % 2 == 0 || node.`val` <= prev))
13+
return false
14+
else if (!even && (node.`val` % 2 == 1 || node.`val` >= prev))
15+
return false
16+
17+
prev = node.`val`
18+
19+
node.left?.let { q.addLast(it) }
20+
node.right?.let { q.addLast(it) }
21+
}
22+
23+
even = !even
24+
}
25+
26+
return true
27+
}
28+
}

0 commit comments

Comments
 (0)