剑指offer-二叉搜索树的后序遍历序列
Posted DeaglePc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer-二叉搜索树的后序遍历序列相关的知识,希望对你有一定的参考价值。
根据二叉搜索树的性质,根节点最小,那么后序遍历的最后一个元素一定是根节点也是最小的,比这个结点小的就是左子树,大的就是右子树,然后递归判断,如果还有元素没有被遍历到那么这个序列就不是正确的后序遍历
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-二叉搜索树的后序遍历序列的主要内容,如果未能解决你的问题,请参考以下文章