Validate Binary Search Tree

LeetCode

LeetCode: https://leetcode.com/problems/validate-binary-search-tree/

Given the root of a binary tree, determine if it is a valid binary search tree (BST).

1def isValidBST(root: Optional[TreeNode]) -> bool:
2 def dfs(node: Optional[TreeNode], lo: float, hi: float) -> bool:
3 if not node:
4 return True
5 if not (lo < node.val < hi):
6 return False
7 return dfs(node.left, lo, node.val) and dfs(node.right, node.val, hi)
8
9 return dfs(root, float('-inf'), float('inf'))
node
5
0
1
1
4
2
3
4
3
5
6
6
tree=Array(7)
lo=-inf
hi=inf
Step 1 / 4
Step 1:
Start at root=5 with range (-∞, +∞). It satisfies the range.
Pointers: node=0
Focus: select @ [0]
lo="-inf"hi="inf"