没用递归分析左子树与右子树居然也能通过,只作为参考,下面考虑不够完全,没有递归左子树与右子树。测试用例不够全面。
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
京公网安备 11010502036488号