leetcode "二叉树的最大深度"一题
用层次遍历二叉树的方法来写 但是定义的是一个常量
所以用大佬的话说是“修改immutable闭包变量要nonlocal”
两个办法
global先要定义再赋值
nonlocal在嵌套函数内部使用
global
def maxDepth(self, root: TreeNode) -> int: #使用层次遍历的方法来做
if root is None:
return 0
global s
s = 0 #注意 s必须为可变变量
def helper(root,level):
global s
if s == level:
s += 1
if root.left is not None:
helper(root.left,level+1)
if root.right is not None:
helper(root.right,level+1)
helper(root,0)
return s
nonlocal
def maxDepth(self, root: TreeNode) -> int: #使用层次遍历的方法来做
if root is None:
return 0
s = 0 #注意 s必须为可变变量
def helper(root,level):
nonlocal s
if s == level:
s += 1
if root.left is not None:
helper(root.left,level+1)
if root.right is not None:
helper(root.right,level+1)
helper(root,0)
return s
对具体的作用域细节还不是很懂 先这样