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
    

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: