Skip to content

Validate Binary Search Tree

LeetCode

01 · Question

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

02 · Solution

Reference solution

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'))