剑指offer——二叉搜索树的后序遍历序列
题目描述
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
# -*- coding:utf-8 -*-
class Solution:
def isSquenceOfBST(self, sequence):
if len(sequence)<=2:
return True
root =sequence[-1]
index=0
res=True
while index<len(sequence)-1 and sequence[index]<root:
index+=1
mark=index
while index<len(sequence)-1 and sequence[index]>root:
index+=1
if index==len(sequence)-1:
return self.isSquenceOfBST(sequence[:mark]) and self.isSquenceOfBST(sequence[mark:-1])
else:
return False
def VerifySquenceOfBST(self, sequence):
# write code here
if sequence==[]:
return False
else:
return self.isSquenceOfBST(sequence)
浙公网安备 33010602011771号