File tree Expand file tree Collapse file tree 1 file changed +32
-0
lines changed
validate-binary-search-tree Expand file tree Collapse file tree 1 file changed +32
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * https://leetcode.com/problems/validate-binary-search-tree/
3+ * time complexity : O(n)
4+ * space complexity : O(n)
5+ */
6+
7+ class TreeNode {
8+ val : number ;
9+ left : TreeNode | null ;
10+ right : TreeNode | null ;
11+ constructor ( val ?: number , left ?: TreeNode | null , right ?: TreeNode | null ) {
12+ this . val = val ?? 0 ;
13+ this . left = left ?? null ;
14+ this . right = right ?? null ;
15+ }
16+ }
17+
18+ function validate ( node : TreeNode | null , lower : number , upper : number ) : boolean {
19+ if ( ! node ) return true ;
20+ const val = node . val ;
21+
22+ if ( val <= lower || val >= upper ) return false ;
23+ if ( ! validate ( node . right , val , upper ) ) return false ;
24+ if ( ! validate ( node . left , lower , val ) ) return false ;
25+
26+ return true ;
27+ }
28+
29+ function isValidBST ( root : TreeNode | null ) : boolean {
30+
31+ return validate ( root , - Infinity , Infinity ) ;
32+ }
You can’t perform that action at this time.
0 commit comments