二叉搜索树也叫二叉排序树,它具有以下性质:
根节点值大于其左子树中所有节点的值,小于其右子树中所有节点的值。
所以二叉排序树的中序遍历为一个递增的有序序列。
在遇到有关二叉排序树的算法时,一定要根据其性质。例如:判断给定的一个int型数组是不是某二叉排序树的后序遍历结果。设后序遍历结果为ABC,则有A<C<B,因此从根节点(最后一个节点)出发,向前找到所有连续的大于根节点的值作为其右子树,再往前直到数组的第一个元素,如果都小于根节点,则把它们作为左子树,然后在分别用同样的方法递归左、右子树,如果往前还有大于根节点的值,则不是二叉搜索树的后序遍历结果,则直接return false。时间复杂度约为O(nlogn)。