題目地址:二叉搜索樹的后序遍歷序列_牛客題霸_牛客網
題目回顧:
解題思路:
使用棧
棧的特點是:先進后出。
通讀題目后,我們可以得出,二叉搜索樹是左子節點小于根節點,右子節點大于根節點。
我們使用一個棧來存儲當前的輸入數組,也就是說,棧中先出的是根結點,如果數組元素小于棧頂元素,就表明此時它是左子樹的根,大于棧頂元素就是右子樹的根。
符合要求就是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;}?