import copy classSolution: """ todo 优化:子树序列长度只需 <= 2,则该子树满足BST的后续遍历 """ defVerifySquenceOfBST(self, sequence): # write code here ifnot sequence: returnFalse root = sequence.pop() left = [] right = [] for i inrange(len(sequence) + 1): tmp_list = copy.deepcopy(sequence) tmp_list.insert(i, root) left = tmp_list[:i + 1] right = tmp_list[i:] ifmax(left) <= root <= min(right): left.pop() right.pop(0) break iflen(right) <= 1: returnFalse
result_left = self.VerifySquenceOfBST(left) if left elseTrue result_right = self.VerifySquenceOfBST(right) if right elseTrue return result_left and result_right