题目描述
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。
核心代码实现
public class Solution {
public boolean VerifySquenceOfBST(int [] sequence
) {
if(sequence
.length
== 0){
return false;
}
return VerifySquOfBST(sequence
, 0, sequence
.length
-1);
}
private static boolean VerifySquOfBST(int[] seq
, int start
, int end
){
if(start
>= end
){
return true;
}
int tempIndex
= start
;
while(tempIndex
<end
&& seq
[tempIndex
]<seq
[end
]){
tempIndex
++;
}
for(int i
=tempIndex
+1; i
<end
; i
++){
if(seq
[i
]<seq
[end
]){
return false;
}
}
return VerifySquOfBST(seq
, start
, tempIndex
-1) && VerifySquOfBST(seq
, tempIndex
, end
-1);
}
}
转载请注明原文地址: https://lol.8miu.com/read-28341.html