zoukankan      html  css  js  c++  java
  • Average of Levels in Binary Tree

    Given a non-empty binary tree, return the average value of the nodes on each level in the form of an array.

    Example 1:

    Input:
        3
       / 
      9  20
        /  
       15   7
    Output: [3, 14.5, 11]
    Explanation:
    The average value of nodes on level 0 is 3,  on level 1 is 14.5, and on level 2 is 11. Hence return [3, 14.5, 11].
    

    还是应用广度优先遍历(BFS),然后计算每一层的和就行

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    import java.util.*;
    class Solution {
        public List<Double> averageOfLevels(TreeNode root) {
            Queue<TreeNode> q=new LinkedList<>();
            if(root!=null) 
                q.add(root);
            List<Double> list=new ArrayList<>();
            
            while(!q.isEmpty()){
                int size=q.size();
                double sum=0;
                
                for(int i=0;i<size;i++){
                    TreeNode node=q.poll();
                    sum+=node.val;
                    if(node.left!=null)
                        q.add(node.left);
                    if(node.right!=null)
                        q.add(node.right);
                }
                
                list.add(sum/size);
            }
            
            return list;
        }
    }
  • 相关阅读:
    链表的常用操作
    android简易论坛的制作
    Bmob后端云的使用
    马哥第九周
    马哥第八周
    马哥第七周
    马哥第六周
    马哥第五周
    马哥第四周
    马哥第三周
  • 原文地址:https://www.cnblogs.com/xiaolovewei/p/8051821.html
Copyright © 2011-2022 走看看