题目链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-hou-xu-bian-li-xu-lie-lcof/
题目如下:
class Solution {
public:
bool verifyPostorder(vector<int>& postorder) {
return dfs(postorder,0,postorder.size()-1);
}
bool dfs(vector<int>& post,int l,int r){//后序 左右根,最后一个为根
//二叉搜索树存在结论:左子树的值都比根节点小,右子树的值都比根节点大
if(l>r) return true;
int rootval=post[r];//获得根节点
//位置k为第一个大于rootval的pos
int k;
for(k=l;k<r&&post[k]<rootval;k++);
for(int i=k;i<r;i++){
if(post[i]<rootval) return false;
}
return dfs(post,l,k-1)&&dfs(post,k,r-1);
}
};
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)