class Tree(object):
def __init__(self):
self.left = None
self.right = None
self.data = None
root = Tree()
root.data = "root"
root.left = Tree()
root.left.data = "left"
root.right = Tree()
root.right.data = "right"
root.left.left = Tree()
root.left.left.data = "left left"
root.left.right = Tree()
root.left.right.data = "left right"
root.right.right = Tree()
root.right.right.data = "right right"
def print_tree(tree_root):
current_level = [tree_root]
while current_level:
print(" : ".join(str(node.data) for node in current_level))
next_level = list()
for n in current_level:
if n.left:
next_level.append(n.left)
if n.right:
next_level.append(n.right)
current_level = next_level
print_tree(root)
'''
run:
root
left : right
left left : left right : right right
'''