1. 程式人生 > 實用技巧 >二叉樹的層平均值

二叉樹的層平均值

此部落格連結:https://www.cnblogs.com/ping2yingshi/p/13656687.html

二叉樹的層平均值

題目連結:https://leetcode-cn.com/problems/average-of-levels-in-binary-tree/

給定一個非空二叉樹, 返回一個由每層節點平均值組成的陣列。

示例 1:

輸入:
3
/ \
9 20
/ \
15 7
輸出:[3, 14.5, 11]
解釋:
第 0 層的平均值是 3 , 第1層是 14.5 , 第2層是 11 。因此返回 [3, 14.5, 11] 。

題解:

思路:利用佇列,對樹進行層次遍歷,計算每層的平均值。

程式碼:

class Solution {
    public List<Double> averageOfLevels(TreeNode root) {
        // if(root.left==null||root.right==null)
        //     return root;
        Queue <TreeNode> queue=new LinkedList();
        List <Double> list=new LinkedList();
        queue.add(root);
        TreeNode temp;
        
while(!queue.isEmpty()){ double sum=0; int len=queue.size(); for(int i=0;i<len;i++){ temp = queue.poll(); sum += temp.val; if(root.left!=null) { queue.add(temp.left); }
if(root.right!=null) { queue.add(temp.right); } } list.add(sum/len); } return list; } }

我感覺程式碼麼有問題,但是提交報錯,報錯資訊如下: