Published:
''
input tree
1
2 3
4 5 6 7
8 9 10 11 12 13 14 15
'''
class Node:
pass
root = Node()
root.data = 1
root.left = Node()
root.right = Node()
root.left.data = 2
root.left.left = Node()
root.left.right = Node()
root.right.data = 3
root.right.left = Node()
root.right.right = Node()
node2 = root.left
node2.left.data = 4
node2.right.data = 5
node3 = root.right
node3.left.data = 6
node3.right.data = 7
node4 = node2.left
node4.left = Node()
node4.left.data = 8
node4.right = Node()
node4.right.data = 9
node5 = node2.right
node5.left = Node()
node5.left.data = 10
node5.right = Node()
node5.right.data = 11
node6 = node3.left
node6.left = Node()
node6.left.data = 10
# node7 = node3.right
# node7.right = Node()
# node7.right.data = 11
queue = []
def printTree(rootNode, queue):
if rootNode.data is not None:
print(rootNode.data)
t = None
while len(queue) > 0:
t = queue[len(queue)-1]
queue.pop()
print(t.data)
if t is not None and hasattr(t, "right"):
queue.append(t.right)
if t is not None and hasattr(t, "left"):
queue.append(t.left)
if hasattr(rootNode, "right"):
queue.append(rootNode.right)
if rootNode is not None and hasattr(rootNode, "left"):
printTree(rootNode.left, queue)
printTree(root, queue)
# print(root.data)
more about problem at http://www.geeksforgeeks.org/level-order-tree-traversal/