class BTree(object):
def __init__(self, value=None, left=None, right=None):
self.val = value
self.left = left
self.right = right
self.dot = Digraph(comment='Binary Tree')
def create_BTree_By_List(array):
i = 1
# 将原数组拆成层次遍历的数组,每一项都储存这一层所有的节点的数据
level_order = []
sum = 1
while sum < len(array):
level_order.append(array[i - 1:2 * i - 1])
i *= 2
sum += i
level_order.append(array[i - 1:])
# BTree_list: 这一层所有的节点组成的列表
# forword_level: 上一层节点的数据组成的列表
def Create_BTree_One_Step_Up(BTree_list, forword_level):
new_BTree_list = []
i = 0
for elem in forword_level:
root = BTree(elem)
if 2 * i < len(BTree_list):
root.left = BTree_list[2 * i]
if 2 * i +