4000 面试题:二叉搜索树的后续遍历序列
2018-01-31 20:52
211 查看
输入一个整数数据,判断该数组是不是某二叉搜索树的后续遍历结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。
关于树的遍历问题相对解法比较单一,固定套路。
bool VerifySequenceOfBST(int sequence[] ,int length)
{
if(sequence==nullptr||length<=0)
return false;
int root=sequence[length-1];
int i=0;
for(;i<length-1;++i)
{
if(sequence[i]>root)
break;
}
int j=i;
for(;j<length-1;++j)
{
if(sequence[j]<root)
return
false;
}
bool left=true;
if(i>0)
left=VerifySequenceOfBST(sequence,i);
bool right=true;
if(i<length-1)
right=VerifySequenceOfBST(sequence+i,length-i-1);
return (left&&right);
}
关于树的遍历问题相对解法比较单一,固定套路。
bool VerifySequenceOfBST(int sequence[] ,int length)
{
if(sequence==nullptr||length<=0)
return false;
int root=sequence[length-1];
int i=0;
for(;i<length-1;++i)
{
if(sequence[i]>root)
break;
}
int j=i;
for(;j<length-1;++j)
{
if(sequence[j]<root)
return
false;
}
bool left=true;
if(i>0)
left=VerifySequenceOfBST(sequence,i);
bool right=true;
if(i<length-1)
right=VerifySequenceOfBST(sequence+i,length-i-1);
return (left&&right);
}
相关文章推荐
- 剑指offer面试题 二叉搜索树的后续遍历序列
- 【剑指Offer】面试题24:二叉搜索树的后续遍历序列
- 剑指offer——面试题24:二叉搜索树的后续遍历序列
- 剑指offer 面试题24 判断二叉搜索树后续遍历序列
- 判断二叉搜索树的后续遍历序列
- 剑指offer:二叉搜索树的后序遍历序列(判断一个数组是否是二叉搜索树的后续遍历序列)
- 《剑指offer》面试题24:二叉搜索树的后序遍历序列
- 二叉搜索树的后续遍历序列
- 剑指offer-面试题24:二叉搜索树的后序遍历序列
- 剑指offer-二叉搜索树的后续遍历序列
- 剑指offer面试题24:二叉搜索树的后序遍历序列
- 【剑指offer】面试题 33:二叉搜索树的后序遍历序列
- 面试题24二叉搜索树的后序遍历序列cpp
- 面试题24.二叉搜索树的后序遍历序列
- 【剑指offer】面试题24:二叉搜索树的后序遍历序列
- 剑指Offer面试题33:二叉搜索树的后序遍历序列
- 剑指offer 4.3 举例形象化问题4-二叉搜索树的后续遍历序列
- 面试题24:二叉搜索树的后序遍历序列
- 关于序列的面试题1 ------------- 判断整数序列是否是二叉排序树的后续遍历
- 二叉搜索树的后续遍历序列