题目地址:二叉搜索树的后序遍历序列_牛客题霸_牛客网
题目回顾:
解题思路:
使用栈
栈的特点是:先进后出。
通读题目后,我们可以得出,二叉搜索树是左子节点小于根节点,右子节点大于根节点。
我们使用一个栈来存储当前的输入数组,也就是说,栈中先出的是根结点,如果数组元素小于栈顶元素,就表明此时它是左子树的根,大于栈顶元素就是右子树的根。
符合要求就是true,否则就是false。
整体代码:
public boolean VerifySquenceOfBST(int [] sequence) {Stack<Integer> res = new Stack<>();//特殊情况if (sequence.length == 0)return false;int root = Integer.MAX_VALUE;for (int i = sequence.length-1; i >= 0 ; i--) {if (sequence[i] > root)return false;while (!res.isEmpty() && res.peek() > sequence[i]){root = res.pop();}res.add(sequence[i]);}return true;}