from collections import deque
classTreeNode(object):"""docstring for ClassName"""def__init__(self, data, left =None, right =None):
self.data = data
self.left = left
self.right = right
def__str__(self):returnstr(self.data)defcreateTree():
A, B, C, D, E, F, G, H, I =[TreeNode(_)for _ in"ABCDEFGHI"]
A.left = B
A.right = C
B.right = D
C.left = E
C.right = F
E.left = G
F.left = H
F.right = I
return A
deflevelOrder(root):
q = deque([root])
result =[]while q:
node = q.popleft()
result.append(node)if node.left:
q.append(node.left)if node.right:
q.append(node.right)for i inrange(len(result)):print(result[i])return result
defcopyTree(root):ifnot node:returnNone
lt = copyTree(root.left)
rt = copyTree(root.right)return TreeNode(root.data, lt, rt)if __name__ =="__main__"
root = createTree()
newTree = copyTree(root)
levelOrder(newTree)