剑指offer 24 二叉搜索树的后序遍历序列
来源:互联网 发布:背单词软件 编辑:程序博客网 时间:2024/06/09 23:22
题目描述
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
思路:
二叉搜索树的左子树小于根节点,右子树大于根节点。递归判断是否符合条件即可。
# -*- coding:utf-8 -*-class Solution: # write code here def VerifySquenceOfBST(self, sequence): # write code here seperator = len(sequence) - 2 if len(sequence) == 0: return False if len(sequence) == 1 or len(sequence) == 2: return True for i in range(0, len(sequence) - 1): if sequence[i] > sequence[-1]: seperator = i break print(seperator, sequence) if seperator != len(sequence) - 2: for i in range(seperator, len(sequence) - 1): if sequence[i] < sequence[-1]: return False left = False right = False if seperator > 0: left = self.VerifySquenceOfBST(sequence[:seperator]) else: left = True if seperator < (len(sequence) - 1): right = self.VerifySquenceOfBST(sequence[seperator:len(sequence) - 1]) else: right = True if left == True and right == True: return True return False
阅读全文
0 0
- 剑指offer:二叉搜索树的后序遍历序列
- 【剑指offer】二叉搜索树的后序遍历序列
- 剑指offer--二叉搜索树的后序遍历序列
- 剑指Offer-->二叉搜索树的后序遍历序列
- 《剑指offer》二叉搜索树的后序遍历序列
- 【剑指Offer】二叉搜索树的后序遍历序列
- 剑指offer--二叉搜索树的后序遍历序列
- 剑指 offer:二叉搜索树的后序遍历序列
- 剑指offer:二叉搜索树的后序遍历序列
- 【剑指offer】二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列||剑指offer
- 剑指offer-二叉搜索树的后序遍历序列
- 剑指offer 二叉搜索树的后序遍历序列
- 剑指offer 二叉搜索树的后序遍历序列
- 剑指offer:二叉搜索树的后序遍历序列
- [剑指offer]二叉搜索树的后序遍历序列
- 《剑指offer》-二叉搜索树的后序遍历序列
- 【剑指offer】二叉搜索树的后序遍历序列
- 动画约束之层动画(一)
- java获取指定位数的随机数和字母
- Linux内核两种编译方式
- 树的子结构
- 面试题记录第二节——(Binder)
- 剑指offer 24 二叉搜索树的后序遍历序列
- vue项目中添加百度地图功能及解决遇到的问题详解
- YTU OJ 2775: 字母的争论
- LEMP
- jquery.cookie.js 使用方法
- 使用YASM编程 -07 模拟导入表
- spring--总体初始
- git的基本使用
- 正宗crm查询功能的实现,万变不离其宗