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


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

    题目描述

    输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回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);
        }
    
  • 相关阅读:
    操作系统---学习笔记00
    操作系统---学习笔记0
    2015/07/16入园啦!
    1-1 console的用法
    2.3 js基础--DOM
    1.2 js基础
    1.1 js基础
    信息收集(1)
    Android概述
    从一次失败的比赛经历引发的思考
  • 原文地址:https://www.cnblogs.com/albertshine/p/13510327.html
Copyright © 2020-2023  润新知