JZ23 二叉搜索树的后序遍历序列

描述

输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。(ps:我们约定空树不是二叉搜索树)

示例1

输入:
[4,8,6,12,16,14,10]
返回值:
true

========================================================================================================================================

解题思路:二叉搜索树是指它的左子树都比根节点小,右子树都比根节点大。二叉搜索树的中序遍历是一个排序好的数列。这道题是根据二叉搜索树的特性来判断该序列是不是二叉搜索树,通过递归的方式来判断,递归的终止条件为:(1)当start>=end
的时候说明已经遍历结束了,结果应该返回true,说明都满足条件;(2)通过最后一个节点,从后往前查找第一个比它小的节点;再判断它之前的序列是否有比它的节点,如果比它,则返回false,否则就根据中节点分成的左右子树递归判断两边
是否都满足二叉搜索树的特性。
posted @ 2021-08-20 19:29  好的好的,  阅读(45)  评论(0编辑  收藏  举报