二叉搜索树的后序遍历序列
题目描述
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
分析
找住二叉查找树的特点:左子树<根<=右子树 使用分治思想。
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。贴出代码
public class Solution {
public boolean VerifySquenceOfBST(int [] sequence) {
if (sequence.length == 0){
return false;
}
if (sequence.length == 1){
return true;
}
return judge(sequence,0,sequence.length - 1);
}
private boolean judge(int[] a, int start, int end){
if (start >= end){
return true;
}
int i = start;
while (a[i] < a[end]){
++i;
}
for (int j = i; j < end; j++){
if (a[j] < a[end]){
return false;
}
}
return judge(a,start,i-1) && judge(a, i, end - 1);
}
}

更多精彩