题解 | #二叉搜索树的后序遍历序列#

二叉搜索树的后序遍历序列

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,
};

全部评论

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务