637. 二叉树的层平均值

题目

  • 给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受。

python

题解:BFS

class Solution:
    def averageOfLevels(self, root: Optional[TreeNode]) -> List[float]:
        q=[root]#用列表做队列
        res=[]#结果列表
        while q:
            size = len(q)
            m=0#每一层的平均值
            for _ in range (size):
                cur=q.pop(0)#弹出队列第一个原素
                m+=cur.val#先求每一层的和
                if cur.left:
                    q.append(cur.left)#如果有左孩子,加入队列
                if cur.right:
                    q.append(cur.right)#如果有右孩子,加入队列
            m=float(m/size)#用每一层的和除每一层的个数为每一层的平均数,转换为浮点型
            res.append(m)#把每一层的平均值加入到结果列表
        return res

javascript

题解:层序遍历

var averageOfLevels = function(root) {
    if(root===null) return []
    let res=[]
    let queue=[root]
    while(queue.length>0){
        let n=queue.length
        let cnt=0
        for(let i=0;i<n;i++){
            let cur_node=queue.shift()
            cnt+=cur_node.val
            if(cur_node.left) queue.push(cur_node.left)
            if(cur_node.right) queue.push(cur_node.right)
        }
        res.push(cnt/n)
    }
    return res
};
posted @   Frommoon  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示