/**
* 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
*
* @author pomay
*
*/
public class Solution_afterbianli
{
public boolean VerifySquenceOfBST(int[] sequence)
{
if (sequence == null || sequence.length == 0)
return false;
// 判断该数组是不是某二叉搜索树的后序遍历,那根结点就是序列最后一个
int root = sequence[sequence.length - 1];
// 在二叉排序树中,左子树值都小于根结点值
int i = 0;
for (; i < sequence.length - 1; i++)
{
if (sequence[i] > root)
break;
}
// 在二叉排序树中,右子树值都大于根结点值
int j = i;
for (; j < sequence.length - 1; j++)
{
if (sequence[j] < root)
break;
}
// 如果是某二叉搜索树的后序遍历,会在正常情况下,即j=sequence.length-1跳出循环,即根结点之前的结点都遍历了一遍,说明该数组是不是某二叉搜索树的后序遍历
if (j == sequence.length - 1)
return true;
else
return false;
}
public static void main(String[] args)
{
int[] sequence =
{ 5, 7, 6, 9, 11, 10, 8 };
// { 7,4,6,5 };
Solution_afterbianli s = new Solution_afterbianli();
System.out.print(s.VerifySquenceOfBST(sequence));
}
}
java实现输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果
最新推荐文章于 2022-11-27 17:23:00 发布
本文介绍了一个用于判断整数数组是否为某个二叉搜索树后序遍历结果的方法。通过检查数组元素与根节点的关系来验证其是否符合二叉搜索树的特性。

453





