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

题目

输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。

思路

递归判断

代码

function VerifySquenceOfBST(sequence) {
  if (!sequence.length) return false;
  return judge(sequence, 0, sequence.length - 1);
}
function judge(a, l, r) {
  if (l >= r) return true;
  let i = r;
  while (a[i - 1] > a[r] && i > l) i--;
  for (let j = i - 1; j >= l; j--) {
    if (a[j] > a[r]) return false;
  }
  return judge(a, l, i - 1) && judge(a, i, r - 1);
}
全部评论

相关推荐

在笔试的柠檬精很想去...:兄弟们,你们这个大厂,中厂,小厂怎么定义的 初来驾到,别笑话我,只要能学到本事,不管大厂小厂都可以,但是别进到黑厂就行
找实习记录
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务