私は、バイナリツリー内のノードを総括しようとしています:サミングノード - 例外TypeError:「NoneType」
def average(tree):
if tree is None:
return
total = (tree['data']) + (average(tree['left'])) + (average(tree['right']))
print(total)
私はまた、しかし、「ある」と「ない」で試してみました彼らはaverage
から計算された後の値を返すように注意しながら、としなければならない、ここで2つの問題があります。
TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'
裸の 'return'は' None'を返すので、あなたのチェックは基本的に無駄です。おそらく '0'のようなデフォルトの_integer_値を返します。また、 '=='ではなく 'is'で '' tree is None: ''にする必要があります。 –
また、 'return tot'も必要です。また、関数名として 'sum'を使用しないことをお勧めします。これはPythonの組み込み' sum'を隠します。 – AChampion
@Christian Deanなぜ '=='や 'not'ですか? –