質問編集履歴
1
追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -36,7 +36,7 @@
|
|
36
36
|
|
37
37
|
if not node.left and not node.right:
|
38
38
|
|
39
|
-
self.max_depth = max(self.max_depth, depth)
|
39
|
+
self.max_depth = max(self.max_depth, depth) ###
|
40
40
|
|
41
41
|
else:
|
42
42
|
|
@@ -51,3 +51,43 @@
|
|
51
51
|
return self.max_depth
|
52
52
|
|
53
53
|
```
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
言葉足らずでした。ehshellさんがおっしゃる通り、全てのselfを外すという解釈で正しいです。
|
58
|
+
|
59
|
+
その時の" local variable 'max_depth' referenced before assignment "エラーは、
|
60
|
+
|
61
|
+
当然ですが###の部分で出ます。
|
62
|
+
|
63
|
+
selfを外すと、max_depthローカル変数として扱われるということはわかりました。
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
ただ、self.max_depth=0 は、maxDepth関数内で宣言されています。
|
68
|
+
|
69
|
+
グローバル変数は、関数外でイニシャライズするものとばかり思っていたのですが、
|
70
|
+
|
71
|
+
上記のような形で、グローバル変数をイニシャライズすることも多いのでしょうか。
|
72
|
+
|
73
|
+
例えば今回の場合では、`
|
74
|
+
|
75
|
+
```Python
|
76
|
+
|
77
|
+
def __init__(self):
|
78
|
+
|
79
|
+
self.max_depth = 0
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
def maxDepth(self, root: Optional[TreeNode]) -> int:
|
84
|
+
|
85
|
+
#以下、略
|
86
|
+
|
87
|
+
```
|
88
|
+
|
89
|
+
のようにするのが作法と思っていましたが、そうでもないのでしょうか。
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
```
|