从根节点开始递归 | #二叉搜索树的后序遍历序列#

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

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

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param sequence int整型一维数组 
# @return bool布尔型
#
class Solution:
    def VerifySquenceOfBST(self , sequence: list[int]) -> bool:
        # write code here
        if not sequence:
            return False
        else:
            return self._verify_rec(sequence)
    
    def _verify_rec(self , sequence: list[int]):
        # print(sequence)
        if len(sequence) == 0:
            return True
        elif len(sequence) == 1:
            return True
        else:
            root_node = sequence[-1]
            sequence = sequence[:-1]
            into_right = 0
            left_bound = 0
            for i in range(len(sequence)):
                if sequence[i] == root_node:
                    return False
                elif (not into_right) and sequence[i] > root_node:
                    into_right = 1
                    left_bound = i+0
                elif into_right and sequence[i] < root_node:
                    return False
            if not into_right:
                left_bound = len(sequence)-1
            return self._verify_rec(sequence[:left_bound]) and self._verify_rec(sequence[left_bound:])

全部评论

相关推荐

07-14 13:37
重庆大学 C++
点赞 评论 收藏
分享
认真搞学习:28小登的建议,投算法岗不要写什么物理竞赛,互联网+,多写点项目,用什么算法做了什么。还有本科算法是不可能的开发你这个也没有项目啊
点赞 评论 收藏
分享
水墨不写bug:疑似没有上过大学
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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