• 剑指offer之 二叉搜索树的后续遍历序列


    题目描述:

    输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。

    public class Solution {
        public boolean VerifySquenceOfBST(int [] sequence) {
            if(sequence.length == 0) return false;
            return IsTreeBST(sequence, 0, sequence.length-1);
        }
        public boolean IsTreeBST(int [] sequence,int start,int end ){
            //if(end <= start) return true;
            int i = start;
            for (; i < end; i++) {
                if(sequence[i] > sequence[end]) break;
            }
            int j;
            for (j = i; j < end; j++) {
                if(sequence[j] < sequence[end]) return false;
            }
            boolean left=true;
            //根结点左子树不为空
            if(i>0){
                left=IsTreeBST(sequence, start, i-1);
            }
            boolean right=true;
            //根结点右子树不为空
            if(j<end-1){
                return IsTreeBST(sequence, i, end-1);
            }
            return left&&right;
        }
    }
    

      

  • 相关阅读:
    盒模型(框模型)
    边框
    尺寸及溢出处理
    HTML标签分类
    尺寸单位和颜色的取值
    选择器的优先级
    C++ 代码模板
    LC 425. Word Squares 【lock,hard】
    LC 660. Remove 9 【lock, hard】
    LC 759. Employee Free Time 【lock, hard】
  • 原文地址:https://www.cnblogs.com/toov5/p/7658538.html
Copyright © 2020-2023  润新知