day17|二叉树| python的变量范围导致的bug?

今天四道题目

654.最大二叉树

617.合并二叉树

700.二叉搜索树中的搜索

98.验证二叉搜索树

除了验证二叉搜索树其他都一次过。

二叉搜索树这题首先是原理部分

  • 中序遍历的顺序是有序的 (ASC)

然后简单的做法是遍历一次,检查顺序是否有序。

我在做的时候用 py 递归进行遍历,然后每次插入遍历数组前检查是否有序,如果是没序的话提前退出,做一个减枝的操作。但是 python 里面递归函数栈对全局变量的依赖好像不会变(我改了全局的变量,但是过去递归调用的函数里面的变量没有改变)。 应该是这个原因,调试半天没有跳出来? 最后还是硬暴力的遍历了一遍中序的结构。希望有人看到能指点一下。

    def isValidBST(self, root: Optional[TreeNode]) -> bool:
        isValid = True
        res=[]
        def dfs(root):
            nonlocal isValid
            if not root:
                return None
            if not isValid:
                return 
            dfs(root.left)
            if res:
                isValid = res[-1]<root.val
            res.append(root.val)
            dfs(root.right)
        dfs(root)
        return isValid

全部评论

相关推荐

01-14 12:08
门头沟学院 Java
神哥了不得:(非引流)1.既然发出来了简历,就稍微提一点点小建议,确实简历很不错了,练手项目可以换一些质量高的,工作内容,可以加上一些量化指标,比如第一条系统响应速度由多少变成多少,减少了百分之多少,第4条就很不错。2.广投,年前实习招募比较少了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务