魔法师 (@Constanline) 在 Leetcode每日一题 —— 2265. 统计值等于子树平均值的节点数 中发帖
思路
由子树统计得出结果的,用DFS显然更合适。
用一个record记录子节点的总和、元素数量、满足条件的元素数量,然后递归两个子树即可。边界是叶子节点,自动满足结果。
代码
class Solution {
private record Result(int sum, int count, int ans) {}
public int averageOfSubtree(TreeNode root) {
Result r = dfs(root);
return r.ans;
}
private Result dfs(TreeNode root) {
if (root.left == null && root.right == null) {
return new Result(...