剑指offer---二叉搜索树的后序遍历序列(Java)

题目描述

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

解析思路

我们注意题目说的是二叉搜索树哈,我一开始以为就是二叉树,弄错好久。
在这里插入图片描述
在这里插入图片描述

运行代码

public class Solution {
    public boolean VerifySquenceOfBST(int [] sequence) {
        int length = sequence.length;
        if(length == 0){
            return false;
        }
        return Find(0,length-1,sequence);
    }
    
    public boolean Find(int start,int end,int [] array){
        if(start>=end){
            return true;
        }
        int length = array.length;
        int i = start;
      //  for(;i<length;i++){   不知道循环几次,所以不用for循环
      //      if(array[i]>array[end]){
      //          break;
      //      }
      //   }
         while(array[i] < array[end]){
            i++;
        }
        for(int j = i; j<end;j++){
            if(array[j]<array[end]){
                return false;
            }
        }
        return Find(start,i-1,array)&&Find(i,end-1,array);
    }
    
}

运行截图

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章