思路
层次遍历
![image.png](/uploads/projects/u213900@nwkz2s/34dce1c014734c8eff69faaa8753fc1a.png)
class Solution {
public List<Double> averageOfLevels(TreeNode root) {
List<Double> ans = new ArrayList<>();
if(root==null)
return ans;
Queue<TreeNode> queue = new ArrayDeque<>();
queue.offer(root);
while(!queue.isEmpty()){
int count = queue.size();
int num = count;
double total = 0;
while(count-->0){
TreeNode node = queue.poll();
if(node==null)
continue;
total+=node.val;
if(node.left!=null)
queue.offer(node.left);
if(node.right!=null)
queue.offer(node.right);
}
ans.add(total/num);
}
return ans;
}
}