Я написал несколько функций для вычисления размера двоичного дерева. Первый (функция 1) работает отлично и объявлен вне класса, он не является функцией-членом класса. Однако второй, который является функцией-членом класса, дает мне странные результаты. Я запутался! Любая помощь будет оценена по достоинству.Функция двоичного дерева в Python
Function 1
def size(root):
if root is None:
return 0
else:
return size(root.left)+ 1+ size(root.right)
Function 2
def size(self):
if self.left is None or self.right is None:
return 0
else:
return self.left.size()+1+self.right.size()
Ваши условия заявления if не эквивалентны между функциями. В частности, вторая функция возвращает 0, если ни левые, ни правые дети не существуют. Это, вероятно, не то, что вы хотите. – Shashank