• 剑指 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);
        }
    }

     递归。

    单调栈的想法还不会实现。

    我的前方是万里征途,星辰大海!!
  • 相关阅读:
    重要的环境变量
    常用的转义字符
    常用系统工作命令
    栈 队列 和 双向队列
    时间
    默认值字典
    Counter
    random
    22 内置常用模块01
    super
  • 原文地址:https://www.cnblogs.com/taoyuxin/p/13521756.html
Copyright © 2020-2023  润新知