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.
- #helper function
- bool isValidBST(TreeNode *root, int lower, int upper){
- if (!root) return true;
- if(root->val <= lower || root->val >= upper) return false;
- bool left = isValidBST(root->left, lower, root->val);
- bool right = isValidBST(root->right, root->val, upper);
- return left && right;
- }
- bool isValidBST(TreeNode *root) {
- isValidBST(root, INT_MIN, INT_MAX);
- }
No comments:
Post a Comment