Skip to content

Commit 0e719c6

Browse files
committed
Week 2
- validate-binary-search-tree
1 parent d2e5e70 commit 0e719c6

1 file changed

Lines changed: 27 additions & 0 deletions

File tree

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
class TreeNode {
2+
val: number;
3+
left: TreeNode | null;
4+
right: TreeNode | null;
5+
constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
6+
this.val = val === undefined ? 0 : val;
7+
this.left = left === undefined ? null : left;
8+
this.right = right === undefined ? null : right;
9+
}
10+
}
11+
12+
function isValidBST(root: TreeNode | null): boolean {
13+
function dfs(node: TreeNode | null, min: number, max: number) {
14+
if (node === null) return true;
15+
16+
if (node.val <= min || node.val >= max) {
17+
return false;
18+
}
19+
20+
return dfs(node.left, min, node.val) && dfs(node.right, node.val, max);
21+
}
22+
23+
return dfs(root, Number.NEGATIVE_INFINITY, Number.POSITIVE_INFINITY);
24+
}
25+
26+
isValidBST([2, 1, 3]); // true
27+
isValidBST([5, 1, 4, null, null, 3, 6]); // false

0 commit comments

Comments
 (0)