博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二叉搜索树
阅读量:4539 次
发布时间:2019-06-08

本文共 1070 字,大约阅读时间需要 3 分钟。

一、题目:二叉搜索树的后序遍历序列

题目描述

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

思路:

  二叉搜索树:根节点 > 左子树 and  根节点 < 右子树

  后序遍历:左、右、根

  后序遍历的二叉搜索树【左(小)、右(大)、根节点】

  找到右节点所在位置 mid ,然后递归判断 【左】是不是二叉搜索树、【右】是不是二叉搜索树

  代码:

  

def VerifySquenceOfBST(self, sequence):        # write code here        if not sequence:            return False        def helper(sequence):            if len(sequence) <= 2:                return True            head = sequence[-1]            mid = 0            for i,s in enumerate(sequence):                if s > head:                    mid = i                    break                elif i == len(sequence) - 1 and s == head:                    mid = i            for i in range(mid):                if sequence[i] > head:                    return False            for i in range(mid,len(sequence)):                if sequence[i] < head:                    return False            return helper(sequence[:mid]) and helper(sequence[mid:len(sequence)-1])        return helper(sequence)

 

转载于:https://www.cnblogs.com/Lee-yl/p/10650216.html

你可能感兴趣的文章
Windows服务安装
查看>>
人工智能 1. 语音合成,语音识别,相似度,图灵机器人,智能对话
查看>>
46_并发编程-进程与线程之间的对比
查看>>
毕业设计第一周每天工作
查看>>
在VS2008中编译和使用OpenSSL
查看>>
临时邮箱
查看>>
jQuery框架分析第一章: 第一个匿名函数
查看>>
如何查看、修改Linux的系统时间
查看>>
hdu 2602 Bone Collector 01背包
查看>>
'fc' 不是内部或外部命令,也不是可运行的程序
查看>>
HTTPS工作原理-默写
查看>>
怎样从GitHub项目中,下载单个文件夹或文件
查看>>
redis安装问题
查看>>
2019 Web开发学习路线图
查看>>
鼠标点击特效
查看>>
2016年网站运维总结【转载】
查看>>
单例模式--singleton
查看>>
php课程笔记4
查看>>
比特币转账流程
查看>>
并发编程(一)
查看>>