Count Nodes Equal to Average of Subtree LeetCode solution in C++
1class Solution {2public:3pair<int, int> func(TreeNode *root, int &ans) {4if (!root) return {0, 0};5auto p1 = func(root->left, ans);6auto p2 = func(root->right, ans);7int avg = (root->val + p1.first + p2.first) / (p1.second + p2.second + 1);8if (avg == root->val) ans++;9return {root->val + p1.first + p2.first, p1.second + p2.second + 1};10}11int averageOfSubtree(TreeNode *root) {12int ans = 0;13func(root, ans);14return ans;15}16};