剑指offer-二叉搜索树的后续遍历序列

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

举例二叉搜索树


难点坑点

  1. 这道题主要的难点是二叉树的后续遍历的关系,我们可以看到二叉树的根节点一定是序列的最后一个数据;所以此序列满足条件,
  2. 注意二叉树为空时要返回false

class Solution {
public:
    bool VerifySquenceOfBST(vector<int> sequence) {
        int max=sequence.size();
        int i=0;
        if(sequence.empty())
            return false;
        for(;max>0;max--,i=0){
            while(sequence[max]>sequence[i++]);
            while(sequence[max]<sequence[i++]);
            if(i<max)
                return false;
        }
        return true;
    }
};

推荐阅读更多精彩内容

  • 前言 树是数据结构中的重中之重,尤其以各类二叉树为学习的难点。一直以来,对于树的掌握都是模棱两可的状态,现在希望通...
    MrHorse1992阅读 274,628评论 50 482
  • 说明: 本文中出现的所有算法题皆来自牛客网-剑指Offer在线编程题,在此只是作为转载和记录,用于本人学习使用,不...
    秋意思寒阅读 776评论 1 1
  • 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的...
    鸿雁长飞光不度阅读 257评论 0 2
  • 窗外是你的小故事 窗内是我的小心思
    初音_阅读 76评论 0 1
  • 此时很安静,我一个人静静思索一个问题, 语文究竟教什么?把文章掰碎了分析给孩子们吗?那孩子们成了什么?鸭子? ...
    晚起画蛾眉阅读 115评论 0 4