__doc__ = u"""
1
2 3
4 5 6 7
8 9 10 11
"""
import copy
class Node(object):
def __init__(self,value):
self.value = value
self.left = None
self.right = None
def __str__(self):
return str(self.value)
def print_bin_tree(root):
array = []
tmp = [{"node":root,"level":0}]
while tmp:
array = copy.copy(tmp)
tmp = []
for elem in array: #打印顺序
node = elem["node"]
level = elem["level"]
print(node.value)
array.reverse()
for elem in array: #添加顺序
node = elem["node"]
level = elem["level"]
if level %2 == 0: #先右,后左
if node.right:
tmp.append({"node":node.right,"level":level + 1})
if node.left:
tmp.append({"node":node.left,"level":level+1})
else:
if node.left:
tmp.append({"node":node.left,"level":level+1})
if node.right:
tmp.append({"node":node.right,"level":level+1})
level = level + 1
if __name__ == "__main__":
root = Node(1)
root.left = Node(2)
root.right = Node(3)
root.left.left = Node(4)
root.left.right = Node(5)
root.right.left = Node(6)
root.right.right = Node(7)
root.left.left.left = Node(8)
root.left.left.right = Node(9)
root.right.right.left = Node(10)
root.right.right.right = Node(11)
print_bin_tree(root)