二叉搜索树的后序遍历序列
二叉搜索树的后序遍历序列
http://www.nowcoder.com/questionTerminal/a861533d45854474ac791d90e447bafd
c++ / 递归
//1 5 3 9 12 10 7 class Solution { public: //1 5 3 9 12 10 7 bool VerifySquenceOfBST(vector<int> sequence) { if(sequence.size() == 0) return false; return isBST(sequence); } bool isBST(vector<int> sequence) { int len = sequence.size(); if(len == 1 || len == 0) return true; vector<int> left, right; int i = 0; while(sequence[i] < sequence[len - 1] && i < len - 1) left.push_back(sequence[i++]); while(sequence[i] > sequence[len - 1] && i < len - 1) right.push_back(sequence[i++]); if(i < len - 1) return false; return isBST(left) && isBST(right); } };