较难 通过率:24.71% 时间限制:1秒 空间限制:64M
- 题目
- 题解(58)
- 讨论(1k)
- 排行
描述
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。(ps:我们约定空树不是二叉搜素树)
示例1
输入:
[4,8,6,12,16,14,10]
返回值:
true
class Solution { public: bool VerifySquenceOfBST(vector<int> sequence) { if(sequence.size() == 0) return false; if(sequence.size() == 1) return true; int pos = sequence.size()-1; int t = 0; while(pos >= 0){ while(sequence[t] < sequence[pos]){ t++; } while(sequence[t] > sequence[pos]){ t++; } if(t != pos) return false; t = 0; pos -= 1; } return true; } };
记录一个非递归的方法