[LeetCode]#637. Average of Levels in Binary Tree

Input: root = [3,9,20,null,15,7]
Output: [3.00000,14.50000,11.00000]
Explanation: The average value of nodes on level 0 is 3, on level 1 is 14.5, and on level 2 is 11.
Hence return [3, 14.5, 11].
  1. Use collections.deque()
  2. check node or not
  3. get the same level node
  4. search next level node
  5. calculate the current level average and add it to answer list
  6. return all levels average
from binarytree import Node
root = Node(3)
root.left=Node(9)
root.right=Node(20)
root.right.left=Node(15)
root.right.right=Node(7)
# Getting binary tree
print('Binary tree :', root)
import collectionsclass Solution(object):
def averageOfLevels(self, root):
queue = collections.deque()
ans = []
queue.append(root)
while queue:
size = len(queue)
temp = []
for _ in range(size):
node = queue.popleft()
if not node:
continue
temp.append(node.val)
queue.append(node.left)
queue.append(node.right)
if temp:
ans.append(sum(temp) / float(len(temp)))
return ans

Interesting in any computer science.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Canopy Charts is Public

What is LLMNR Attack and how to mitigate

Learn The Basics Of A Linked List Data Structure

Using GitHub With Unity

The Technocratic Oath

Using Dependency Inversion in Go

Mini-Max Sum Solution in Kotlin -HackerRank

An unfolding story evolved into evolutionary theology —

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Fatboy Slim

Fatboy Slim

Interesting in any computer science.

More from Medium

[LeetCode]#2089. Find Target Indices After Sorting Array

LeetCode Patterns Adventure 12 — Palindrome Linked List

Remove nth node from end of list Leetcode Python

How to implement a Queue class using deque. PYTHON data structures and algorithm.