【LeetCode】统计值等于子树平均值的节点数 Java 题解
题目描述
给你一棵二叉树的根节点 root ,找出并返回满足要求的节点数,要求节点的值等于其 子树 中值的 平均值 。
注意:
n 个元素的平均值可以由 n 个元素 求和 然后再除以 n ,并 向下舍入 到最近的整数。root 的 子树 由 root 和它的所有后代组成。
复制代码
思路分析
今天的算法题目是二叉树的题目,题目要求找出并返回满足要求的节点数,要求节点的值等于其子树中值的 平均值 。
分析之后,需要分别求出当前节点的值和子树的平均值。做树相关的题目,我们通常使用深度优先遍历或者广度优先遍历。具体到这个题目,我们采用数组的形式保存,数组元素 0 表示当前节点的和,数组元素 1 表示当前节点的数目的和。有了这两个参数,我们就可以求平均数了。
具体实现代码如下,供参考。
通过代码
复制代码
总结
上述算法的时间复杂度是 O(n), 空间复杂度是 O(n)
坚持算法每日一题,加油!
版权声明: 本文为 InfoQ 作者【Albert】的原创文章。
原文链接:【http://xie.infoq.cn/article/301b7e6523e7944a0244a141c】。文章转载请联系作者。
评论