1. 程式人生 > 實用技巧 >劍指 Offer 33. 二叉搜尋樹的後序遍歷序列

劍指 Offer 33. 二叉搜尋樹的後序遍歷序列

class Solution {
    public boolean verifyPostorder(int[] postorder) {
        int n = postorder.length;
        if(n<=1) return true;
        int j = n-1;
        for(;j>=0;j--){
            if(postorder[j]<postorder[n-1]){
                break;
            }
        }
        int[] left = Arrays.copyOfRange(postorder,0,j+1);
        
int[] right = Arrays.copyOfRange(postorder,j+1,n-1); return track(postorder[n-1],left,right); } private boolean track(int root, int[] left, int[] right) { if(left.length>0){ for (int value : left) { if (value > root) { return
false; } } } if(right.length>0){ for (int value : right) { if (value < root) { return false; } } } return verifyPostorder(left) && verifyPostorder(right); } }

遞迴。

單調棧的想法還不會實現。