码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-10-13 20:07:18      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:code   public   turn   判断   style   eof   后序遍历序列   二叉搜索树   logs   

根据二叉搜索树的性质,根节点最小,那么后序遍历的最后一个元素一定是根节点也是最小的,比这个结点小的就是左子树,大的就是右子树,然后递归判断,如果还有元素没有被遍历到那么这个序列就不是正确的后序遍历

class Solution {
public:
    bool VerifySquenceOfBST(vector<int> sequence) {
        if(sequence.size() == 0)
            return false;
        return find(sequence, 0, sequence.size() - 1);
    }
    
    bool find(vector<int> sq,int left,int right){
        if(right - left < 1)
            return true;
        int root = sq[right];
        int l = left, r = right - 1;
        while(l < right - 1){
            if(sq[l] < root){
                l++;
            }
            else{
                break;
            }
        }
        while(r > left){
            if(sq[r] > root){
                r--;
            }
            else{
                break;
            }
        }
        if(r - l > 0)
            return false;
        return find(sq, left, r) && find(sq, l, right - 1);
    }
};

 

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

标签:code   public   turn   判断   style   eof   后序遍历序列   二叉搜索树   logs   

原文地址:http://www.cnblogs.com/dupengcheng/p/7662693.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!