L98. Validate Binary Search Tree
Problem:
Given a binary tree, determine if it is a valid binary search tree (BST).
Assume a BST is defined as follows:
The left subtree of a node contains only nodes with keys less than the node's key.
The right subtree of a node contains only nodes with keys greater than the node's key.
Both the left and right subtrees must also be binary search trees.
Example 1:
2
/ \
1 3
Input: [2,1,3]
Output: true
Solution:
binary search: left always less than root, right always larger than root.
public boolean isValidBST(TreeNode root) {
return helper(root,null,null);
}
private boolean helper(TreeNode root, TreeNode min, TreeNode max){
if(root == null) return true;
if(min != null && root.val <= min.val || max != null && root.val >= max.val) return false;
return helper(root.left, min, root) && helper(root.right, root, max);
}
Last updated
Was this helpful?