//判断是否为BST 搜索树==二叉排序树 1、递归知最大最小值。2、先中序判是否单调
bool IsValidBST(BTNode *p,int low,int high){
if(p==NULL){
return true;
}else{
if(low<p->data && high>p->data){
return(IsValidBST(p->lchild,low,high) &&
IsValidBST(p->rchild,low,high));
}else{
return false;
}
}
}
void IsBST(BTNode *p,int &k,bool &fail){
if(p && !fail){
IsBST(p->lchild,k,fail);
if(k<p->data){
k=p->data;
}else{
fail=true;
}
IsBST(p->rchild,k,fail);
}
}
bool isValidBST(TreeNode *root) {
vector<int> res;
isValidBST(root, res);
int len = res.size();
bool flag = true;
for (int i=; i<len-; i++){
if (res[i] >= res[i+]){
flag = false;
break;
}
}
return flag;
}
void isValidBSTOrder(TreeNode *root, vector<int> &res){
if (root == NULL)
return;
isValidBST(root->left, res);
res.push_back(root->val);
isValidBST(root->right, res);
}
//判断是否为BST
bool fail=false;
void IsBST(BTNode *p,int &k,bool &fail){
if(p && !fail){
IsBST(p->lchild,k,fail);
if(k<p->data){
k=p->data;
}else{
fail=true;
}
IsBST(p->rchild,k,fail);
}
}

最新文章

  1. MVC跨域CORS扩展
  2. gradle项目中资源文件的相对路径打包处理技巧
  3. Interpolation in MATLAB
  4. linux运维笔记——常用命令详解diff
  5. Bootstrap系列 -- 36. 向上弹起的下拉菜单
  6. Intellij IDEA 的使用(创建项目、导入项目、同时部署多个项目、JRebel)等常见eclipse、myeclipse换idea必看
  7. HIbernate小结
  8. fzu 2105 Digits Count ( 线段树 ) from 第三届福建省大学生程序设计竞赛
  9. Android集成Mina NIO Socket
  10. Mining 影响数据挖掘结果的 5 方面
  11. LINQ 图解
  12. springMVC,spring,mybatis全注解搭建框架--第一步,让框架跑起来
  13. tensorflow--交叉熵
  14. ionic3 对android包进行签名
  15. Java连接访问Oracle--Connection.setSavepoint()方法使用
  16. WPF App.xaml.cs常用模板,包括:异常捕获,App只能启动一次
  17. Django商城项目笔记No.9用户部分-注册接口签发JWTtoken
  18. Java并发编程笔记—摘抄—基础知识
  19. Spring MVC 处理模型数据
  20. 实现KbmMw web server 支持https

热门文章

  1. JVM 类的卸载
  2. Js-事件分发与DOM事件流
  3. scipy.fftpack fft
  4. typeScript模块&lt;三&gt;
  5. Python判断是否是闰年
  6. openresty开发系列27--openresty中封装redis操作
  7. python多线程中join()的理解
  8. Spring MVC 数据模型与视图
  9. 【翻译】Flink Table Api &amp; SQL ——Streaming 概念
  10. Siamese Net