Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Average of levels in binary tree

Average of levels in binary tree

Interview Question - Average of levels in binary tree Solved using a simple Breadth First Search (BFS) algorithm while keep tracking of levels.

Avatar for Oussama Zaki

Oussama Zaki

July 12, 2017
Tweet

Other Decks in Programming

Transcript

  1. Average of Levels in Binary Tree 3 11 9 4

    1 7 4 Illustration by Oussama Zaki Variables Queue Averages nodes_count_per_level = sum_per_level = node
  2. Average of Levels in Binary Tree Illustration by Oussama Zaki

    Initializing with the root node 3 ∅ Queue Averages nodes_count_per_level = sum_per_level = node 3 11 9 4 1 7 4
  3. Average of Levels in Binary Tree Illustration by Oussama Zaki

    Loop - Picking up a node from the Queue ∅ Queue Averages nodes_count_per_level = 1 sum_per_level = 3 3 node 3 11 9 4 1 7 4
  4. Average of Levels in Binary Tree Illustration by Oussama Zaki

    Adding left child ∅ 11 Queue Averages nodes_count_per_level = 1 sum_per_level = 3 3 node 3 11 9 4 1 7 4
  5. Average of Levels in Binary Tree Illustration by Oussama Zaki

    Adding right child ∅ 11 4 Queue Averages nodes_count_per_level = 1 sum_per_level = 3 3 node 3 11 9 4 1 7 4
  6. Average of Levels in Binary Tree Illustration by Oussama Zaki

    Loop - Picking up a node from the Queue 11 4 Queue Averages nodes_count_per_level = 1 sum_per_level = 3 ∅ node 3 11 9 4 1 7 4
  7. Average of Levels in Binary Tree Illustration by Oussama Zaki

    Null node ⟹ End of level ⟹ Update averages 11 4 Queue Averages nodes_count_per_level = 0 sum_per_level = 0 3 ∅ node 3 11 9 4 1 7 4
  8. Average of Levels in Binary Tree Illustration by Oussama Zaki

    Null node ⟹ End of level & first node is not Null 11 4 ∅ Queue Averages nodes_count_per_level = 0 sum_per_level = 0 3 ∅ node 3 11 9 4 1 7 4
  9. Average of Levels in Binary Tree Illustration by Oussama Zaki

    3 11 9 4 1 7 4 Loop - Picking up a node from the Queue 4 ∅ Queue Averages nodes_count_per_level = 1 sum_per_level = 11 3 11 node
  10. Average of Levels in Binary Tree Illustration by Oussama Zaki

    3 11 9 4 1 7 4 Adding left child 4 ∅ 4 Queue Averages nodes_count_per_level = 1 sum_per_level = 11 3 11 node
  11. Average of Levels in Binary Tree Illustration by Oussama Zaki

    3 11 9 4 1 7 4 Loop - Picking up a node from the Queue ∅ 4 Queue Averages nodes_count_per_level = 1 + 1 sum_per_level = 11 + 4 3 4 node
  12. Average of Levels in Binary Tree Illustration by Oussama Zaki

    3 11 9 4 1 7 4 Adding left child ∅ 4 1 Queue Averages nodes_count_per_level = 1 + 1 sum_per_level = 11 + 4 3 4 node
  13. Average of Levels in Binary Tree Illustration by Oussama Zaki

    3 11 9 4 1 7 4 Adding right child ∅ 4 1 7 Queue Averages nodes_count_per_level = 1 + 1 sum_per_level = 11 + 4 3 4 node
  14. Average of Levels in Binary Tree Illustration by Oussama Zaki

    3 11 9 4 1 7 4 Loop - Picking up a node from the Queue 4 1 7 Queue Averages nodes_count_per_level = 1 + 1 sum_per_level = 11 + 4 3 ∅ node
  15. Average of Levels in Binary Tree Illustration by Oussama Zaki

    3 11 9 4 1 7 4 Null node ⟹ End of level 4 1 7 Queue Averages nodes_count_per_level = 0 sum_per_level = 0 3 7.5 ∅ node
  16. Average of Levels in Binary Tree Illustration by Oussama Zaki

    3 11 9 4 1 7 4 Null node ⟹ End of level & first node is not Null 4 1 7 ∅ Queue Averages nodes_count_per_level = 0 sum_per_level = 0 3 7.5 ∅ node
  17. Average of Levels in Binary Tree Illustration by Oussama Zaki

    3 11 9 4 1 7 4 Loop - Picking up a node from the Queue 1 7 ∅ Queue Averages nodes_count_per_level = 1 sum_per_level = 4 3 7.5 4 node
  18. Average of Levels in Binary Tree Illustration by Oussama Zaki

    3 11 9 4 1 7 4 Loop - Picking up a node from the Queue 7 ∅ Queue Averages nodes_count_per_level = 1 + 1 sum_per_level = 4 + 1 3 7.5 1 node
  19. Average of Levels in Binary Tree Illustration by Oussama Zaki

    3 11 9 4 1 7 4 Loop - Picking up a node from the Queue ∅ Queue Averages nodes_count_per_level = 1 + 1 + 1 sum_per_level = 4 + 1 + 7 3 7.5 7 node
  20. Average of Levels in Binary Tree Illustration by Oussama Zaki

    3 11 9 4 1 7 4 Adding right child ∅ 9 Queue Averages nodes_count_per_level = 1 + 1 + 1 sum_per_level = 4 + 1 + 7 3 7.5 7 node
  21. Average of Levels in Binary Tree Illustration by Oussama Zaki

    3 11 9 4 1 7 4 Loop - Picking up a node from the Queue 9 Queue Averages nodes_count_per_level = 1 + 1 + 1 sum_per_level = 4 + 1 + 7 3 7.5 ∅ node
  22. Average of Levels in Binary Tree Illustration by Oussama Zaki

    3 11 9 4 1 7 4 Null node ⟹ End of level 9 Queue Averages nodes_count_per_level = 0 sum_per_level = 0 3 7.5 4 ∅ node
  23. Average of Levels in Binary Tree Illustration by Oussama Zaki

    3 11 9 4 1 7 4 Null node ⟹ End of level & first node is not Null 9 ∅ Queue Averages nodes_count_per_level = 0 sum_per_level = 0 3 7.5 4 ∅ node
  24. Average of Levels in Binary Tree Illustration by Oussama Zaki

    3 11 9 4 1 7 4 Loop - Picking up a node from the Queue ∅ Queue Averages nodes_count_per_level = 1 sum_per_level = 9 3 7.5 4 9 node
  25. Average of Levels in Binary Tree Illustration by Oussama Zaki

    3 11 9 4 1 7 4 Loop - Picking up a node from the Queue Queue Averages nodes_count_per_level = 1 sum_per_level = 9 3 7.5 4 ∅ node
  26. Average of Levels in Binary Tree Illustration by Oussama Zaki

    3 11 9 4 1 7 4 Null node ⟹ End of level Queue Averages nodes_count_per_level = 0 sum_per_level = 0 3 7.5 4 9 ∅ node
  27. Average of Levels in Binary Tree Illustration by Oussama Zaki

    3 11 9 4 1 7 4 Null node ⟹ End of level & first node is Null ∅ Queue Averages nodes_count_per_level = 0 sum_per_level = 0 3 7.5 4 9 ∅ node
  28. Average of Levels in Binary Tree Illustration by Oussama Zaki

    3 11 9 4 1 7 4 End ∅ Queue Averages nodes_count_per_level = 0 sum_per_level = 0 3 7.5 4 9 ∅ node