二叉搜索樹的後序遍歷序列


class Solution {
public:
	bool VerifySquenceOfBST(vector<int> sequence) {
		int len = sequence.size();
        if(len == 0)
            return false;
        if(len == 1)
            return true;
        vector<int> leftTree;
        vector<int> rightTree;
        int root = sequence[len-1];
        int i = 0;
        for(;i < len;i++){
            if(sequence[i] > root)
            	break;
            if(sequence[i] != root)
                leftTree.push_back(sequence[i]);
        }
        for(;i < len; i++){
            if(sequence[i] < root)
                return false;
            if(sequence[i] != root)
                rightTree.push_back(sequence[i]);
        }
        bool left = true,right = true;
        if(leftTree.size() > 0)
            left = VerifySquenceOfBST(leftTree);
        if(rightTree.size() > 0)
            right = VerifySquenceOfBST(rightTree);
        return left && right;
	}
};


發佈了119 篇原創文章 · 獲贊 2 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章