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)