Как бы я вернул кортеж, содержащий количество внутренних узлов и количество листьев? Ниже приводится то, что я получил до сих пор, но, похоже, он работает неправильно.Вернуть кортеж, содержащий количество внутренних узлов и количество листьев
Кроме того, знает ли кто-нибудь о хорошем веб-сайте, где я могу узнать бинарные деревья и рекурсию с наборами проблем для большей практики?
class BTNode:
'''Node in binary tree'''
def __init__(self, value, left, right):
'''
Create new BTNode with value and possible children left and right'''
self.value, self.left, self.right = value, left, right
def count_nodes(n:'BTNode') -> (int, int):
'''
Return a tuple containing the number of interior nodes and the number of
leaves in the tree rooted at n, or (0,0) if n is None.
'''
if not n:
return (0,0)
else:
left_internal, left_leaves = count_nodes(n.left)
right_internal, right_leaves = count_nodes(n.right)
internal, leaf = (1 if n.left or n.right else 0,
1 if not n.left and not n.right else 0)
return (left_internal + right_internal + internal,
left_leaves + right_leaves + leaf)
Просьба также показать, что он на самом деле * * выводит или возвращает. –