def minimal_tree(arr):
    med = len(arr) / 2

    left_arr = arr[:med]
    right_arr = arr[med + 1:]

    val = arr[med]

    B = BinaryTree(val)

    if len(left_arr) > 0:
        B.addLeft(minimal_tree(left_arr))

    if len(right_arr) > 0:
        B.addRight(minimal_tree(right_arr))

    return B
Beispiel #2
0
        for i in range(len(queue)):
            subTree = queue.pop()
            linked_lst.append(subTree.value)

            if subTree.left != None:
                queue.insert(0, subTree.left)
            if subTree.right != None:
                queue.insert(0, subTree.right)
        print linked_lst
        print "----"


B = BinaryTree(5)
lB = BinaryTree(4)
llB = BinaryTree(3)
rlB = BinaryTree(4.5)
rB = BinaryTree(7)
rrB = BinaryTree(9)
'''
                5
        4               7
    3       4.5             9
'''

lB.addLeft(llB)
lB.addRight(rlB)
rB.addRight(rrB)
B.addLeft(lB)
B.addRight(rB)

list_of_depths(B)