98.Validate Binary Search Tree
September 30, 2021
Description:
Given the root
of a binary tree, determine if it is a valid binary search tree (BST).
A valid 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.
Examples:
1 | Input: root = [2,1,3] |
Constraints:
- The number of nodes in the tree is in the range
[1, 104]
. -2^31 <= Node.val <= 2^31 - 1
Note:
Property of a Binary Search Tree:
Ref from Huahua@Youtube
For each TreeNode
- cur->left->val < cur->val
- cur->right->val > cur->val
Consider the range:
The input value ranges from -2^31 <= Node.val <= 2^31 - 1, so the positive/negative infinity should be set to LLONG_MIN, LLONG_MAX. (64-bit)
Pseudocode:
1 | if nulltree: |
C++:
1 | class Solution |
For Your Consider:
What if the range extends to -2^64 ~2^64-1?
Hint: Use nullptr to represent infinity.
Load Comments