二叉搜索树的后序遍历序列
来源:互联网 发布:临沂淘宝代运营 编辑:程序博客网 时间:2024/06/08 03:09
题目:
输入一个整数数组,判断该数组是不是一颗二叉搜索树的后续遍历的结果,如果是返回true,否则返回false
分析:由于二叉搜索树的特性,左子树一定小于根节点,右子树一定大于根节点,所以在一颗二叉搜索树中不会出现两个相同的节点
bool IsBST(int arr[],int len){assert(arr !=NULL);if(len < 0)return false;//首先由于二叉树的特性,所以根节点是最后一个节点int root=arr[len-1];int i=0;while(i <len-1){//找到第一个比根节点大的节点,从这一分为二//小于i的是根节点左子树,大于i的是右子树if(arr[i] >root)break;++i;}int j=i+1;while(j <len-1){//由于二叉搜索树的性质,所以如果找到右子树中有比root小的树//那就不是二叉搜索树,返回falseif(arr[j] <root)return false;}//否则就递归的去从左右子树中继续找bool leftchild=true;//从i下标隔开,小于i的是根节点左子树//大于i下标的是右子树if(i >0)leftchild=IsBST(arr,i);//递归右子树bool rightchild=true;if(i < len-1)rightchild=IsBST(arr,len-i-1);//最后返回左右子树相 && 的结果return (leftchild && rightchild);}
0 0
- 二叉树------二叉搜索树的后序遍历序列
- 【树5】二叉搜索树的后序遍历序列
- 题目10:二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 题目1367:二叉搜索树的后序遍历序列
- 1367:二叉搜索树的后序遍历序列 @jobdu
- 二叉搜索树的后序遍历序列
- Q24:二叉搜索树的后序遍历序列
- 剑指offer:二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 【剑指offer】二叉搜索树的后序遍历序列
- 题目1367:二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 基于Dex分包方案---热修复、热更新、插件化
- 集合CollectionUtils的操作方法
- LeakCanary: 让内存泄露无所遁形
- log4j日志异步化大幅提升系统性能
- linux上Zookeeper集群安装及监控
- 二叉搜索树的后序遍历序列
- 打开网页自动弹出QQ对话框的3种方法
- Spark定制班第28课:在集成开发环境中详解Spark Streaming的运行日志内幕
- LeakCanary: 让内存泄露无所遁形
- PHP empty()和isset()的区别
- Android自定义控件,可以滑动的导航栏(Navigation Bar)
- 递归实现二进制转换
- 适配器模式
- ORACLE R12 Workflow Mailer设置