BST(二叉搜索树)
其特点是:每个节点的值大于其任意左侧子节点的值,小于其任意右节点的值。
基于此,BST树的中序遍历是一个由小到大的顺序序列
题目:
输入一个非空整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
#参考牛客网 if not sequence: return False if len(sequence)==1: return True length=len(sequence) root=sequence[-1] i=0 while sequence[i]<root: i+=1 j = i for k in range(j,length-1): if sequence[k]<root: return False left_next = sequence[:j] right_next = sequence[j:-1] left = True right = True if len(left_next)>0: left = self.VerifySquenceOfBST(left_next) if len(right_next)>0: right = self.VerifySquenceOfBST(right_next) return left and right