题目描述
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
思路:因为是二叉搜索树,所以根节点的左子树小于右子树,可以根据这一点用非递归的方法求得,
代码如下:
public class Solution {
public boolean VerifySquenceOfBST(int [] sequence) {
int length = sequence.length;
if(length == 0)return false;
int i = 0;
while(--length>0){
while(sequence[i++] < sequence[length]);
while(i<length && sequence[i++] > sequence[length]);
if(i<length) return false;
i = 0;
}
return true;
}
}