Validate Binary Search Tree [LeetCode]
2024-08-23 23:57:56
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.
bool varifyBST(TreeNode * root, int * out_min, int * out_max) {
if(root == NULL)
return true;
(*out_min) = root->val;
(*out_max) = root->val;
if(root->left == NULL && root->right == NULL)
return true; int vmax = root->val;
int vmin = root->val;
if(root->left != NULL){
bool ret = varifyBST(root->left, &vmin, &vmax);
if(ret == false)
return false;
if(vmax >= root->val)
return false;
(*out_min) = min(vmin, root->val);
} if(root->right != NULL){
bool ret = varifyBST(root->right, &vmin, &vmax);
if(ret == false)
return false;
if(vmin <= root->val)
return false;
(*out_max) = max(vmax, root->val);
}
return true;
} bool isValidBST(TreeNode *root) {
int vmax = ;
int vmin = ;
return varifyBST(root, &vmin, &vmax);
}
最新文章
- Mongodb的安装
- IO 相关配置参数
- Hadoop 调研笔记
- 阅读《LEARNING HARD C#学习笔记》知识点总结与摘要四
- EF 相见恨晚的Attach方法
- HTML基础(1)
- lucene 使用注意
- ECSHOP不同商品分类调用不同模板
- 怎么利用CSS3绘制三角形
- 手机端轻应用模拟原生的下拉刷新效果(JavaScript)
- 黄源河《左偏树的应用》——数字序列(Baltic 2004)
- 页面类跳转Demo
- FastDFS分布式存储实战
- RxSwift 函数响应式编程
- [HNOI 2001]软件开发
- LeetCode算法题-Minimum Distance Between BST Nodes(Java实现-四种解法)
- springdata 动态查询之分页
- swiper 父级元素display:none 之bug
- 剑指offer(1)
- height、clientHeight、offsetHeight、scrollHeight、height()、 innerHeight()、outerHeight()等的区别