1
var isValidBST = function (root) {
2
return validate(root, -Infinity, Infinity);
3
};
4

5
var validate = function (node, lower, upper) {
6
if (node == null) {
7
// empty node or empty tree
8
return true;
9
}
10

11
if (lower < node.val && node.val < upper) {
12
// check if all tree nodes follow BST rule
13
return (
14
validate(node.left, lower, node.val) &&
15
validate(node.right, node.val, upper)
16
);
17
} else {
18
// early reject when we find violation
19
return false;
20
}
21
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0