class Node:
def __init__(self, value):
self.value = value
self.children = []
def tree(li):
nodes = [Node(i) for i in li]
for i in range(1, len(li)):
nodes[(i - 1) // 2].children.append(nodes[i])
return nodes[0]
def calc(node, level=0):
if node is None:
return 0
return (node.value if level % 2 == 1 else 0) + sum(calc(n, level + 1) for n in node.children)
li = [3, 5, 8, 12, 15, 18, 21]
root = tree(li)
print(calc(root))
# range(1, 7)
# nodes[0].children - nodes[1]
# nodes[0].children - nodes[2]
# nodes[1].children - nodes[3]
# nodes[1].children - nodes[4]
# nodes[2].children - nodes[5]
# nodes[2].children - nodes[6]
# 3
# 5 8
# 12 15 18 21
# root = 3
To embed this project on your website, copy the following code and paste it into your website's HTML: