Even Odd Tree LeetCode solution in JavaScript

1
/**
2
* Definition for a binary tree node.
3
* function TreeNode(val, left, right) {
4
* this.val = (val===undefined ? 0 : val)
5
* this.left = (left===undefined ? null : left)
6
* this.right = (right===undefined ? null : right)
7
* }
8
*/
9
/**
10
* @param {TreeNode} root
11
* @return {boolean}
12
*/
13
var isEvenOddTree = function (root) {
14
let queue = [root];
15
let steps = 0;
16

17
while (queue.length > 0) {
18
const currLength = queue.length;
19
let nextQueue = [];
20

21
for (let i = 0; i < currLength; i++) {
22
const node = queue[i];
23
if (steps % 2 !== 0) {
24
if (
25
(i < currLength - 1 && node.val <= queue[i + 1].val) ||
26
node.val % 2 !== 0
27
) {
28
return false;
29
}
30
} else if (
31
(i < currLength - 1 && node.val >= queue[i + 1].val) ||
32
node.val % 2 === 0
33
) {
34
return false;
35
}
36
if (node.left) nextQueue.push(node.left);
37
if (node.right) nextQueue.push(node.right);
38
}
39
queue = nextQueue;
40
steps++;
41
}
42

43
return true;
44
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0