Content-Length: 11637 | pFad | https://leetcode-in-net.github.io/LeetCodeNet/G0601_0700/S0637_average_of_levels_in_binary_tree

LeetCode in Net | C#-based LeetCode algorithm problem solutions, regularly updated.

LeetCode in Net

637. Average of Levels in Binary Tree

Easy

Given the root of a binary tree, return the average value of the nodes on each level in the form of an array. Answers within 10-5 of the actual answer will be accepted.

Example 1:

Input: root = [3,9,20,null,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].

Example 2:

Input: root = [3,9,20,15,7]

Output: [3.00000,14.50000,11.00000]

Constraints:

Solution

using System;
using System.Collections.Generic;
using LeetCodeNet.Com_github_leetcode;

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     public int val;
 *     public TreeNode left;
 *     public TreeNode right;
 *     public TreeNode(int val=0, TreeNode left=null, TreeNode right=null) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
public class Solution {
    public IList<double> AverageOfLevels(TreeNode root) {
        IList<int> count = new List<int>();
        IList<double> avg = new List<double>();
        Average(root, 0, count, avg);
        for(int i = 0; i < count.Count; i++) {
            avg[i] /= count[i];
        }
        return avg;
    }

    private void Average(TreeNode node, int level, IList<int> count, IList<double> avg) {
        if (node == null) {
            return;
        }
        if (level < count.Count) {
            count[level]++;
            avg[level] += (double) node.val;
        } else {
            count.Add(1);
            avg.Add((double) node.val);
        }
        Average(node.left, level + 1, count, avg);
        Average(node.right, level + 1, count, avg);
    }
}








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: https://leetcode-in-net.github.io/LeetCodeNet/G0601_0700/S0637_average_of_levels_in_binary_tree

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy