题目描述:
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。
假设输入的数组的任意两个数字都互不相同。
思路:
找住二叉查找树&#xff08;Binary Search Tree,BST)的特点&#xff1a;左子树<根<右子树
使用分治思想和递归思想
package swordToOffer._23_VerifySquenceOfBST;public class Solution {public boolean VerifySquenceOfBST(int [] sequence) {if(sequence.length&#61;&#61;0){return false;}return judge(sequence,0,sequence.length-1);}public boolean judge(int[] seq,int start,int root){if(start>&#61;root){return true;}int i&#61;start;while(i>&#61;start && i<root){if(seq[i]>seq[root]){break;}i&#43;&#43;;}int boudaryIndex&#61;i;while(i<root){if(seq[i]<seq[root]){return false;}i&#43;&#43;;}