2265. Count Nodes Equal to Average of Subtree

Difficulty:
Related Topics:
Similar Questions:

Problem

Given the root of a binary tree, return **the number of nodes where the value of the node is equal to the *average* of the values in its subtree**.

Note:

  Example 1:

Input: root = [4,8,5,0,1,null,6]
Output: 5
Explanation: 
For the node with value 4: The average of its subtree is (4 + 8 + 5 + 0 + 1 + 6) / 6 = 24 / 6 = 4.
For the node with value 5: The average of its subtree is (5 + 6) / 2 = 11 / 2 = 5.
For the node with value 0: The average of its subtree is 0 / 1 = 0.
For the node with value 1: The average of its subtree is 1 / 1 = 1.
For the node with value 6: The average of its subtree is 6 / 1 = 6.

Example 2:

Input: root = [1]
Output: 1
Explanation: For the node with value 1: The average of its subtree is 1 / 1 = 1.

  Constraints:

Solution

/**
 * Definition for a binary tree node.
 * function TreeNode(val, left, right) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.left = (left===undefined ? null : left)
 *     this.right = (right===undefined ? null : right)
 * }
 */
/**
 * @param {TreeNode} root
 * @return {number}
 */
var averageOfSubtree = function(root) {
    return helper(root).res;
};

var helper = function(root) {
    if (!root) return { sum: 0, num: 0, res: 0 };
    var left = helper(root.left);
    var right = helper(root.right);
    var sum = left.sum + right.sum + root.val;
    var num = left.num + right.num + 1;
    var res = left.res + right.res + (Math.floor(sum / num) === root.val ? 1 : 0);
    return { sum, num, res };
};

Explain:

nope.

Complexity:

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy