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

運行截圖

在這裏插入圖片描述

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