image.png

思路

层次遍历

image.png

  1. class Solution {
  2. public List<Double> averageOfLevels(TreeNode root) {
  3. List<Double> ans = new ArrayList<>();
  4. if(root==null)
  5. return ans;
  6. Queue<TreeNode> queue = new ArrayDeque<>();
  7. queue.offer(root);
  8. while(!queue.isEmpty()){
  9. int count = queue.size();
  10. int num = count;
  11. double total = 0;
  12. while(count-->0){
  13. TreeNode node = queue.poll();
  14. if(node==null)
  15. continue;
  16. total+=node.val;
  17. if(node.left!=null)
  18. queue.offer(node.left);
  19. if(node.right!=null)
  20. queue.offer(node.right);
  21. }
  22. ans.add(total/num);
  23. }
  24. return ans;
  25. }
  26. }