题解 | #二叉搜索树的后序遍历序列#
二叉搜索树的后序遍历序列
https://www.nowcoder.com/practice/a861533d45854474ac791d90e447bafd
function VerifySquenceOfBST(sequence) {
// write code here
if (sequence.length === 0) return false
if (sequence.length < 3) return true;
const root = sequence[sequence.length - 1]
let leftEnd = 0
while (sequence[leftEnd] < root) {
leftEnd++
}
let rightStart = sequence.length - 2
while (sequence[rightStart] > root) {
rightStart --
}
if (leftEnd - 1 !== rightStart) {
return false
} else {
const left = sequence.slice(0, leftEnd)
const right = sequence.slice(leftEnd, sequence.length - 1)
return (left.length === 0 || VerifySquenceOfBST(left)) && (right.length === 0 || VerifySquenceOfBST(right))
}
}
module.exports = {
VerifySquenceOfBST: VerifySquenceOfBST,
};

