01 · Question
Given the root of a binary tree, determine if it is a valid binary search tree (BST).
02 · Solution
1def isValidBST(root: Optional[TreeNode]) -> bool:2 def dfs(node: Optional[TreeNode], lo: float, hi: float) -> bool:3 if not node:4 return True5 if not (lo < node.val < hi):6 return False7 return dfs(node.left, lo, node.val) and dfs(node.right, node.val, hi)8 9 return dfs(root, float('-inf'), float('inf'))