没用递归分析左子树与右子树居然也能通过,只作为参考,下面考虑不够完全,没有递归左子树与右子树。测试用例不够全面。
def VerifySquenceOfBST(self, sequence): # write code here if sequence == None: return False # 后序遍历序列的特点:最后一位节点是根节点,前面是左子树+右子树,整个结构是:左子树+右子树+根节点 # 结合二叉搜索树的特点:可知左子树 < 根节点;右子树 > 根节点 index = None n = len(sequence) for i in range(n): if sequence[i] > sequence[-1]: index = i if index != None and sequence[i] < sequence[-1]: return False if sequence == []: return False return True