题解 | #二叉搜索树的后序遍历序列#

二叉搜索树的后序遍历序列

https://www.nowcoder.com/practice/a861533d45854474ac791d90e447bafd

python3,非递归方法。
理解:
所谓后序遍历,尾部一定是最“中”性的。
体现在BST中,即任意尾部,相对于该尾部之前,一定是中等大小的,等价表述:对于任意尾部,最多,经过一轮小于尾部的迭代,再经过一轮大于尾部的迭代,就一定可以到达尾部。
BST一定满足这个特征,满足这个特征的一定可以做成BST。
class Solution:
    def VerifySquenceOfBST(self , sequence: List[int]) -> bool:
        if not sequence: return False
        i = 0
        size = len(sequence)-1
        while size:
            while sequence[i] < sequence[size]: # 一轮小于尾部的迭代
                i = i + 1
            while sequence[i] > sequence[size]: # 一轮大于尾部的迭代
                i = i + 1
            if i < size: return False # 若到达尾部,则该尾部暂时满足。否则直接False
            i = 0
            size = size - 1
        return True


全部评论

相关推荐

不愿透露姓名的神秘牛友
07-08 14:10
点赞 评论 收藏
分享
下个早班:秒挂就是不缺人
点赞 评论 收藏
分享
06-12 16:00
天津大学 Java
牛客30236098...:腾讯坏事做尽,终面挂是最破防的 上次被挂了后我连简历都不刷了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-08 11:16
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务