leetcode

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit 6a8a8d85c3f9104ece8ede5041a2fee2f0977bf6
parent f1178a94f37300eb0d5c63295734453f612754ef
Author: AndrewLockVI <andrewlaack1@gmail.com>
Date:   Sun, 21 May 2023 23:41:15 -0500

Completed average of levels in binary tree using BFS and dart

Diffstat:
Aaverage-of-levels-in-binary-tree/average-of-levels-in-binary-tree.dart | 30++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+), 0 deletions(-)

diff --git a/average-of-levels-in-binary-tree/average-of-levels-in-binary-tree.dart b/average-of-levels-in-binary-tree/average-of-levels-in-binary-tree.dart @@ -0,0 +1,30 @@ +//Given a binary tree find the average of each +//level and return the averages as a list. +//To do this I used BFS by adding up all of the values +//on a given level then dividing by the number of nodes. +//I then repeated this for all layers. +//Time: 259ms Beats: 100% +//Memory: 144.2MB Beats: 50% +class Solution { + List<double> averageOfLevels(TreeNode? root) { + List<TreeNode?> queue = []; + queue.add(root); + List<double> medians = []; + while(queue.length != 0){ + int layer_val = 0; + int init_length = queue.length; + for(int i = 0 ; i < init_length ; ++i){ + layer_val += (queue[i]?.val ?? 0); + if(queue[i]?.right != null){ + queue.add(queue[i]?.right); + } + if(queue[i]?.left != null){ + queue.add(queue[i]?.left); + } + } + medians.add(layer_val / init_length); + queue = queue.sublist(init_length); + } + return medians; + } +}