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

Posted __Meng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了24 二叉搜索树的后序遍历序列相关的知识,希望对你有一定的参考价值。

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

 

 

C++:

 1 class Solution {
 2 public:
 3     bool VerifySquenceOfBST(vector<int> sequence) {
 4         if (sequence.empty())
 5             return false ;
 6         return Verify(sequence , 0 , sequence.size()-1) ;
 7     }
 8     
 9     bool Verify(vector<int> sequence,  int left , int right) {
10         if (right - left <= 0)
11             return true ;
12         int rootValue = sequence[right] ;
13         int cutIndex = left ;
14         for(; cutIndex < right ; cutIndex++){
15             if (sequence[cutIndex] > rootValue)
16                 break ;
17         }
18         for(int i = cutIndex ; i < right ; i++){
19             if (sequence[i] < rootValue)
20                 return false ;
21         }
22         return Verify(sequence , left , cutIndex-1) && Verify(sequence , cutIndex , right-1) ;
23     }
24 };

 

以上是关于24 二叉搜索树的后序遍历序列的主要内容,如果未能解决你的问题,请参考以下文章

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

《剑指offer》面试题24 二叉搜索树的后序遍历序列 Java版

最强解析面试题:二叉搜索树的后序遍历序列

最强解析面试题:二叉搜索树的后序遍历序列

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

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