classSolution:defVerifySquenceOfBST(self, sequence):# write code hereif len(sequence) <= 0or sequence == None:
returnFalse
length = len(sequence)
root = sequence[-1]
i, j = 0, 0# i 的范围是[0, length - 1]for i in range(length):
if sequence[i] > root:
break# j的范围是[i, length - 1]for j in range(i, length):
if sequence[j] < root:
returnFalse
left = Trueif i > 0:
left = self.VerifySquenceOfBST(sequence[:i])
right = Trueif j < length - 1:
right = self.VerifySquenceOfBST(sequence[i:-1])
return left and right
python 非递归
classSolution1:defVerifySquenceOfBST(self, sequence):# write code hereif len(sequence) == 0:
returnFalse
length = len(sequence) - 1
i = 0while length != 0:
while sequence[i] < sequence[length]:
i += 1while sequence[i] > sequence[length]:
i += 1if i < length:
returnFalse
length -= 1
i = 0returnTrue