输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入饿数组的任意两个数字都互不相同。
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution:
def VerifySequenceOfBST(self, sequence):
if sequence==[]:
return False
rootNum=sequence[-1]
del sequence[-1]
index=None
for i in range(len(sequence)):
if index == None and sequence[i]>rootNum:
index=i
if index!=None and sequence[i]<rootNum:
return False
if sequence[:index] ==[]:
leftRet = True
else:
leftRet=self.VerifySequenceOfBST(sequence[:index])
if sequence[index:]==[]:
rightRet=True
else:
rightRet = self.VerifySequenceOfBST(sequence[index:])
return leftRet and rightRet