class Node(object):
    def __init__(self,val=None,left=None,right=None):
        """构建树的节点"""
        self.val=val #值
        self.left=left #左树
        self.right=right #右树

class Tree(object):
    """二叉树结构"""
    def __init__(self,node=None):
        self.root=node
    def add(self,item=None):
        """添加节点,item为数值"""
        node=Node(val=item) #建立节点
        if not self.root or self.root.val is None: #空树
            self.root=node
        else:
            queue=[]
            queue.append(self.root) #通过队列来完成二叉树的构建
            while True:
                current_node=queue.pop(0) #当前待判断的节点
                if current_node.val is None:
                    continue
                if not current_node.left: #左树为空
                    current_node.left=node
                    return
                elif not current_node.right:
                    current_node.right=node
                    return
                else: #左右都有值,添加到queue待弹出
                    queue.append(current_node.left)
                    queue.append(current_node.right)

tree=Tree()
for i in range(10):
    if i==3:
        i=None
    tree.add(i)