剑指offer 判断数组的后序遍历是否为搜索二叉树
2017-03-18 20:57
387 查看
题目描述
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。二叉搜索树、有序二叉树、排序二叉树、二叉查找树
二叉搜索树是一颗排序树,那么左孩子<根节点<右孩子 后续遍历会怎么样的效果
1 4 7 6 3 13 14 10 8
参考更多阅读
class Solution {
public:
bool VerifySquenceOfBST(vector<int> sequence) {
if(sequence.size()==0)
return false;
int size=sequence.size();
int i=0;
if(size--){
while(sequence[i++]<sequence[size]);
while(sequence[i++]>sequence[size]);
if(i<size)
return false;
}
return true;
}
};
这里利用了一个搜索二叉树的一个特点,根节点的值会被放在数组最后一个位置。遍历一个位置i,i前的值小于根节点,i后面的大于根节点,包括根节点。
相关文章推荐
- 判断数组是否为搜索二叉树的后序遍历
- 剑指off-判断一个数组是不是搜索二叉树的后序遍历的序列
- 二叉树问题---判断数组是否为某搜索二叉树的后序遍历的结果
- 剑指offer-24:搜索二叉树的后序遍历
- 【剑指offer24】输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
- 判断给定数组是否是二叉树的前序或者后序遍历结果
- 剑指offer:二叉搜索树的后序遍历序列(判断一个数组是否是二叉搜索树的后续遍历序列)
- 剑指offer_输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果
- 剑指Offer——搜索二叉树的后序遍历
- 判断一个数列是否是二叉树后序遍历的结果
- 判断给定的数组是否为二叉搜索树的后序遍历序列
- 剑指offer24判断某一序列是否是某一搜索二叉树的后续遍历结果
- 剑指offer解题报告(Java版)——二叉树的深度 判断二叉树是否平衡 38
- 后序遍历求解判断一颗二叉树是否为平衡二叉树
- 判断一个数组是否为后序遍历结果
- 二叉树相关操作(先序建立二叉树、求子节点数量,判断是否为平衡二叉树,先序遍历,中序遍历,后序遍历)
- 【剑指offer】判断二叉树是否为平衡二叉树
- 判断数组是否是搜索二叉树的后序遍历
- 剑指offer:java判断二叉树是否对称
- 剑指Offer--039-平衡二叉树(判断一棵二叉树是否是平衡二叉树)[扩展附加题]