zoukankan      html  css  js  c++  java
  • 判断数组是不是某二叉搜索树的后序遍历的结果

    题目描述

    输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
     
    分析:
    用递归实现。先把root节点拿出来,再把数组分成左右子树
     
    解答:
     
     
    class Solution:
        def VerifySquenceOfBST(self, sequence):
            # write code here
            if not sequence:
                return False
            if len(sequence)==1 or len(sequence)==2:
                return True
            left=[]
            right=[]
            root=sequence.pop()
            for i in range(len(sequence)):
                if root < sequence[i]:
                    left=sequence[:i]
                    right=sequence[i:]
                    break
            for i in right:
                if i<=root:
                    return False
            verify=True
            if left:
                verify&=self.VerifySquenceOfBST(left)
            if right:
                verify&=self.VerifySquenceOfBST(right)
            return verify
    

      

     
     
     
  • 相关阅读:
    Python Ethical Hacking
    Python Ethical Hacking
    Python Ethical Hacking
    Python Ethical Hacking
    Python Ethical Hacking
    Python Ethical Hacking
    Python Ethical Hacking
    Arctic Network POJ
    Truck History POJ
    QS Network ZOJ
  • 原文地址:https://www.cnblogs.com/girl1314/p/10468004.html
Copyright © 2011-2022 走看看