思路
了解二叉树和后序遍历的特点就会做了
利用根结点分割左右子树,左<根<右
代码
import java.util.*; public class Solution { public boolean VerifySquenceOfBST(int [] sequence) { //二叉树搜索树是左<根<右 //后序遍历是 左右根,在数组中,根结点是最后一个 //前序遍历 根左右,在数组种,根结点是第一个 //中序结点 左根右,在数组种,特点是根结点可以划分左右子树 if(sequence.length<=0){return false;} return just(sequence); } public boolean just(int[] sequence){ if(sequence.length<=2){ return true; } int root=sequence[sequence.length-1]; int p=0; while(p<sequence.length&& sequence[p]<root){ p++; } for(int i=p;i<sequence.length-1;i++){ if(sequence[i]<root){ return false; } } return just(Arrays.copyOfRange(sequence,0,p)) && just(Arrays.copyOfRange(sequence,p,sequence.length-1)); } }