题目描述
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
结论:
由后序遍历(左->右->根)可知,最末尾一个数字是二叉树的根。因此在数组中找到比根小的节点,剩下的节点的值就必然比根节点的值大,若不成立,则该数组序列不可能是二叉树后序遍历的结果。
这样的结论是否成立?还需要判断左子树和右子树是否仍是二叉搜索树吗?
题目描述
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
结论:
由后序遍历(左->右->根)可知,最末尾一个数字是二叉树的根。因此在数组中找到比根小的节点,剩下的节点的值就必然比根节点的值大,若不成立,则该数组序列不可能是二叉树后序遍历的结果。
这样的结论是否成立?还需要判断左子树和右子树是否仍是二叉搜索树吗?
是需要递归判断的,抱歉,之前理解有误。