zoukankan      html  css  js  c++  java
  • 二叉搜索树的后序遍历序列

    二叉搜索树的后序遍历序列

    题目描述

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

    image-20200815205244055

    分析:

    image-20200815205646427

    image-20200815205652606

    代码实现:

    image-20200815205159665

    public class Solution {
        public boolean VerifySquenceOfBST(int [] sequence) {
            if(sequence.length==0){
                return false;
            }
            return Verify(sequence,0,sequence.length-1);
        }
        public boolean Verify(int[] sequence,int start,int end){
            if(start>=end){
                return true;
            }
            int i=start;
            while(sequence[i]<sequence[end]){
                i++;
            }
            for(int j=i;j<end;j++){
                if(sequence[j]<sequence[end]){
                    return false;
                }
            }
            return Verify(sequence,start,i-1)&&Verify(sequence,i,end-1);
        }
    }
    

    问题总结

    在调试过程中,传入的测试数据:

    image-20200815210118694

    在向左递归的时候,然后再回溯的时候start=1了,这是为什么

    image-20200815210046649

    这是测试代码

    psvm

    public static void main(String[] args) {
    //        String str = "ab";
            int[] arr = {1, 4, 2, 6, 11, 9, 5};
            boolean r = VerifySquenceOfBST(arr);
            System.out.println(r);
    
    
    
        }
    

    主代码:

      public static boolean VerifySquenceOfBST(int [] sequence) {
            if(sequence.length==0){
                return false;
            }
            return Verify(sequence,0,sequence.length-1);
        }
        public static boolean Verify(int[] sequence,int start,int end){
            if(start>=end){
                return true;
            }
            int i=start;
            while(sequence[i]<sequence[end]){
                i++;
            }
            for(int j=i;j<end;j++){
                if(sequence[j]<sequence[end]){
                    return false;
                }
            }
            return Verify(sequence,start,i-1)&&Verify(sequence,i,end-1);
        }
    
  • 相关阅读:
    php-文件系统
    php
    php
    php
    关于学习上面的感悟
    php
    Error: PostCSS plugin tailwindcss requires PostCSS 8.
    常用/不常用的HTTP状态码
    小程序云托管无需服务器部署PHP
    Docker-镜像操作
  • 原文地址:https://www.cnblogs.com/albertshine/p/13510327.html
Copyright © 2011-2022 走看看