Рекурсивная функция: рекурсия с питоном - PullRequest
0 голосов
/ 21 марта 2019

У меня есть эта функция:

def depth(self):
        if self.root == None:
            return 0
        left = depth(self.left)
        right = depth(self.right)
        if left>right:
            return left+1
        else:
            return right+1

Но когда я его запускаю, появляется следующая ошибка:

 File "/Users/suryakannan/Documents/Python Programs/binaryTree.py", line 60, in depth
    left = depth(self.left)
NameError: name 'depth' is not defined

Итак, что я должен сделать, чтобы исправить эту функцию?

1 Ответ

2 голосов
/ 21 марта 2019

Поскольку depth является методом экземпляра, вам необходимо использовать self ссылку

def depth(self):
    if self.root == None:
        return 0
    left = self.depth(self.left)
    right = self.depth(self.right)
    if left>right:
        return left+1
    else:
        return right+1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...