题目描述[原题链接][https://www.acwing.com/problem/content/description/44/]
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。
如果是则返回true
,否则返回false
。
假设输入的数组的任意两个数字都互不相同。
样例
1 | 输入:[4, 8, 6, 12, 16, 14, 10] |
算法描述
后序遍历序列的最后一个元素就是二叉树的根节点,根据二叉搜索树的特点,左子树的所有节点的值都小于根节点的值,右子树的所有节点的值都大于根节点的值;所以每次找到节点的左右子树的分割点,判断两端的数据是否满足性质
C++代码
1 | class Solution { |
Java代码
1 | class Solution { |