实现一棵简单的二叉树
node.py
class Node(object):
def __init__(self, val=None, left=None, right=None):
self.val = val
self.left = left
self.right = right
tree.py
from node import Node
class Tree(object):
def __init__(self, node=Node()):
self.root = node
def add(self, item=Node):
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 queue
elif not current_node.right:
current_node.right = node
return queue
else:
queue.append(current_node.left)
queue.append(current_node.right)
return queue
from tree import Tree
tree = Tree()
for i in range(10):
if i == 3:
i = None
out = tree.add(i)
print(out)