二叉樹的層平均值
阿新 • • 發佈:2020-09-12
此部落格連結: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; } }
我感覺程式碼麼有問題,但是提交報錯,報錯資訊如下: