class Solution {
public List<Double> averageOfLevels(TreeNode root) {
List<Double> res=new ArrayList<>();
if(root==null){
return res;
}
Queue<TreeNode> qu=new LinkedList<>();
qu.offer(root);
double ave,sum;
int le;
TreeNode tn;
while(!qu.isEmpty()){
sum=0.00000;
le=qu.size();
int le2=le;
while(le>0){
tn=qu.poll();
sum+=tn.val;
if(tn.left!=null){
qu.offer(tn.left);
}
if(tn.right!=null){
qu.offer(tn.right);
}
le--;
}
ave=sum/le2;
res.add(ave);
}
return res;
}
}
class Solution(object):
def averageOfLevels(self, root):
res=[]
if root is None:
return res
qu=collections.deque()
qu.append(root)
while qu:
sum=0.00000
le=len(qu)
le2=le
while le>0:
tn=qu.popleft()
sum+=tn.val
if tn.left:
qu.append(tn.left)
if tn.right:
qu.append(tn.right)
le-=1
ave=sum/le2
res.append(ave)
return res