给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。
示例
示例 1:
输入:
3
/ \
9 20
/ \
15 7
输出:[3, 14.5, 11]
解释:
第 0 层的平均值是 3 , 第1层是 14.5 , 第2层是 11 。因此返回 [3, 14.5, 11] 。
题解
创建一个队列,先放入 root
q = [3] res =[]
取出队列长度的个数 1,求出平均数 3 计入。再判断当前节点的左右子节点,放入队列
q = [9, 20] res = [3]
同样的,取出 2 个数,求出平均数 14.5计入。在分别判断每个节点的左右子节点,放入队列。由于节点 9 没有子节点,所以当前队列只有节点 20 的子节点
q = [15, 7] res = [3, 14.5]
最后得到第三个平均数 11,节点 15 和节点 7 都没有子节点,队列为空结束循环
/*** 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 averageOfLevels = function(root) {const res = []const q = [root]while(q.length) {const len = q.lengthlet sum = 0for (let i = 0; i < len; i++) {const item = q.shift()sum += item.valif (item.left) {q.push(item.left)}if (item.right) {q.push(item.right)}}res.push(sum / len)}return res};
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/average-of-levels-in-binary-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
