[剑指Offer] 23.二叉搜索树的后序遍历

来源:互联网 发布:2016浙江省数据库三级 编辑:程序博客网 时间:2024/06/06 15:13
【思路】BST的后序序列的合法序列是,对于一个序列S,最后一个元素是x (也就是根),如果去掉最后一个元素的序列为T,那么T满足:T可以分成两段,前一段(左子树)小于x,后一段(右子树)大于x,且这两段(子树)都是合法的后序序列。下面是在讨论中看到的一份代码,已学习到。

 1 class Solution { 2 public: 3     bool VerifySquenceOfBST(vector<int> sequence) { 4         int size = sequence.size(); 5         if(size == 0) 6             return false; 7         int i = 0; 8         while(--size){ 9             while(sequence[i ++] < sequence[size]);10             while(sequence[i ++] > sequence[size]);11             if(i < size)12                 return false;13             i = 0;14         }15         return true;16     }17 };