Вот как определяется узел:
Узел - это объект
- Значение: Число
- Дети: Список узлов
class Node:
def __init__(self, key, childnodes):
self.key = key
self.childnodes = childnodes
def __repr__(self):
return f'Node({self.key!r}, {self.childnodes!r})
testTree = Node(1, [Node(2, []), Node(3, [Node(4, [Node(5, []), Node(6, [Node(7, [])])])])])
Код, которым я был пытается это:
def sum_of_nodes(root):
if root is None:
return 0
return root.key + sum_of_nodes(root.childnodes[0]) + sum_of_nodes(root.childnodes[1])
Однако я получаю сообщение об ошибке:
Traceback (most recent call last):
File "D: /Documents/project1.py", line 170, in <module>
print (f'sum_of_nodes (exampleTree) => {sum_of_nodes (exampleTree)}') # 28
File "D: /Documents/project1.py", line 81, in sum_of_nodes
return root.value + sum_of_nodes (root.subnodes[0]) + sum_of_nodes (root.subnodes[1])
File "D: /Documents/project1.py", line 81, in sum_of_nodes
return root.value + sum_of_nodes (root.subnodes[0]) + sum_of_nodes (root.subnodes[1])
IndexError: list index out of range