Skip to content

Commit e16fd48

Browse files
committed
Feat: 98. Validate Binary Search Tree
1 parent 5558d9c commit e16fd48

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
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+
/**
13+
* https://leetcode.com/problems/validate-binary-search-tree
14+
* T.C. O(n)
15+
* S.C. O(n)
16+
*/
17+
function isValidBST(root: TreeNode | null): boolean {
18+
return validate(root, null, null);
19+
}
20+
21+
function validate(node: TreeNode | null, min: number | null, max: number | null): boolean {
22+
if (!node) return true;
23+
if (min !== null && node.val <= min) return false;
24+
if (max !== null && node.val >= max) return false;
25+
return validate(node.left, min, node.val) && validate(node.right, node.val, max);
26+
}

0 commit comments

Comments
 (0)