剑指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)

  

posted on 2019-11-23 11:34  法杰拉  阅读(152)  评论(0编辑  收藏  举报

导航