fork download
  1. from collections import defaultdict
  2. from queue import Queue
  3.  
  4. class Node:
  5. def __init__(self,data):
  6. self.val = data
  7. self.left = None
  8. self.right = None
  9.  
  10. def levelOrderTraversal(root):
  11. result = defaultdict(list)
  12. if not root:
  13. return result
  14. q = Queue()
  15. level = 0
  16. q.put((level, root))
  17.  
  18. while not q.empty():
  19. e = q.get()
  20. level = e[0]
  21. #Throws error: TypeError: 'Node' object does not support indexing
  22. node = e[1]
  23. result[level].append(node.val)
  24. if node.left:
  25. q.put((level + 1,node.left))
  26. if node.right:
  27. q.put((level + 1,node.right))
  28. return result
  29.  
  30. def test1():
  31. root = Node(1)
  32. root.left = Node(2)
  33. root.right = Node(3)
  34. return levelOrderTraversal(root)
  35.  
  36. print(test1()) # prints defaultdict(<class 'list'>, {0: [1], 1: [2, 3]})
  37.  
Success #stdin #stdout 0.05s 10080KB
stdin
Standard input is empty
stdout
defaultdict(<class 'list'>, {0: [1], 1: [2, 3]})