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:
1 |
|
Example 2:
1 |
|
Explanation
-
We can use recursive method to solve this problem. To know if the current node is the valid BST, we check the left child’s value cannot be greater or equal than the current node value and the right child cannot be smaller or equal to the current node’s value. So, we can recursivly call the left child’s node and call the right child’s node with this same method with the correct min and max value.
-
The base case is when the current node is NULL, we return true.
Solution
1 |
|