题目描述
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出yes,否则输出no。假设输入的数组的任意两个数字都互不相同。
此题仍然是对二叉树遍历方法的考察,但是与直接对遍历方法的考察不太一样,因为这里的输入是后续遍历的序列,所以要判断该序列是否是某二叉树的后续遍历结果,关键在于找出根节点,根节点的左子树和根节点的右子树,然后继续对左子树和右子树进行判断,直到全部元素访问完毕。这里很显然是一个递归的过程。由于后续遍历是先访问双亲节点,接着访问左孩子,再访问右孩子,所以需要对每个节点的左右子树做进一步的判断。
明白思路后,可以写出如下的实现代码(已被牛客ac):