Javaコードが実行されますが、Pythonコードではなく、なぜですか? Pythonでクラス内のグローバル変数にアクセスするにはどうしたらいいですか?Pythonクラスでグローバル変数を使用するにはどうしたらいいですか?
Pythonコード:
Definition for a binary tree node.
class TreeNode(object):
def __init__(self, x):
self.val = x
self.left = None
self.right = None
previous = None
class Solution(object):
def isValidBST(self, root):
"""
:type root: TreeNode
:rtype: bool
"""
if not root:
return True
if not self.isValidBST(root.left):
return False
if previous!=None and previous >= root.val:
return False
previous = root.val
return self.isValidBST(root.right)
Line 20: UnboundLocalError: local variable 'previous' referenced before assignment.
Javaコード:
public class Solution {
private Integer previous = null;
public boolean isValidBST(TreeNode root) {
if(root == null){
return true;
}
if(!isValidBST(root.left)){
return false;
}
if(previous != null && previous>=root.val){
return false;
}
previous = root.val;
return isValidBST(root.right);
}
}
「外部」にアクセスするにはどうすればよいですか? – dsgdfg
Solutionオブジェクトを渡し、自分の編集をチェックする必要があります – dhdavvie