package com.daily.daily20210201;
/**
* @Project: dailyCode
* @Site: http://www.zhao1iang.club/
* @Copyright: ©CodeLamp
* @Author: zhaoliang
* @Create: 2021-02-01 15:58
* @Desc: 二叉树得后序遍历序列
**/
public class VerifySquenceOfBST {
//输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。
public boolean VerifySquenceOfBST(int[] sequence){
if (sequence==null || sequence.length==0)return false;
return helper(sequence,0,sequence.length-1);
}
private boolean helper(int[] sequence, int first, int last) {
if (last - first <=1)return true;
int rootVal = sequence[last];
int curIndex = first;
while(curIndex < last && sequence[curIndex] <= rootVal){
curIndex++;
}
for (int i = curIndex; i <last ; i++) {
if (sequence[i] < rootVal){
return false;
}
}
return helper(sequence,first,curIndex-1) && helper(sequence,curIndex,last-1);
}
}
日常刷题-二叉树得后序遍历序列
最新推荐文章于 2024-04-26 21:55:28 发布