Validate Binary Search Tree
Try to solve the Validate Binary Search Tree problem.
Statement
Given the root of a binary tree, check whether it is a valid binary search tree (BST).
A binary tree is a valid BST if for every node:
-
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 are valid BSTs.
Constraints:
-
Node.data
-
The tree contains nodes in the range .
Examples
Understand the problem
Let’s take a moment to make sure you’ve correctly understood the problem. The quiz below helps you check if you’re solving the correct problem:
Valid Binary Search Tree
Is the following binary tree a valid binary search tree?
9
/ \
2 10
/ \
7 20
True
False
Figure it out!
We have a game for you to play. Rearrange the logical building blocks to develop a clearer understanding of how to solve this problem.
Try it yourself
Implement your solution in the following coding playground.
# Definition for a binary tree node# class TreeNode:# def __init__(self, data):# self.data = data# self.left = None# self.right = Nonefrom ds_v1.BinaryTree.BinaryTree import TreeNodeimport mathdef validate_bst(root):# Replace this placeholder return statement with your codereturn False