• 剑指offer 面试33题


    面试33题:
    题:二叉搜索树的后序遍历序列

    题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。

    解题思路:递归

    解题代码:

    # -*- coding:utf-8 -*-
    class Solution:
        def VerifySquenceOfBST(self, sequence):
            # write code here
            if not sequence or len(sequence)<=0:
                return False
            root=sequence[-1]
            i=0
            
            #找出左小右大的分界点i,此时i属于右子树
            for node in sequence[:-1]:
                if node > root:
                    break
                i+=1
            
            #如果在右子树中有比根节点小的值,直接返回False
            for node in sequence[i:-1]:
                if node < root:
                    return False
            #判断左子树是否为二叉搜索树
            left=True
            if i>0:
                left=self.VerifySquenceOfBST(sequence[:i])
            #判断右子树是否为二叉搜索树
            right=True
            if i<len(sequence)-1:
                right=self.VerifySquenceOfBST(sequence[i:-1])

         return left and right
  • 相关阅读:
    ASP.NET DropDownList 控件绑定数据
    Linux图形界面与命令行界面切换
    Linux性能分析
    UTF虚拟对象
    UFT场景恢复
    UFT参数化
    UFT检查点
    UFT三种录制方式
    UFT基本操作
    UFT安装目录简单介绍
  • 原文地址:https://www.cnblogs.com/yanmk/p/9219761.html
Copyright © 2020-2023  润新知