题目描述
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
js代码
function VerifySquenceOfBST(sequence)
{
// write code here
if (sequence.length === 0) return false
let length = sequence.length
let root = sequence[length-1]
let mid = 0
let flag = false
for (let i = 0; i < length; i++) {
if (root < sequence[i]) {
mid = i
flag = true
break
}
}
for (let i = mid; i < length; i++){
if (root > sequence[i] && flag) {
return false
}
}
let left = true
if (mid > 0) {
left = VerifySquenceOfBST(sequence.slice(0, mid))
}
let right = true
if (mid < sequence.length-1){
right = VerifySquenceOfBST(sequence.slice(mid, length-1))
}
return left && right
}