637. Average of Levels in Binary Tree
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public List averageOfLevels(TreeNode root) {
List out = new ArrayList();
Queue q = new LinkedList();
q.add(root);
while(! q.isEmpty()){
int len = q.size();
Double sum = 0.0;
for (int i = 0; i < len; i++){
TreeNode c = q.remove();
if (c != null){
sum += c.val;
if(c.left !=null)q.add(c.left);
if(c.right != null)q.add(c.right);
}
}
out.add(sum/len);
}
return out;
}
}