题:https://leetcode.com/problems/average-of-levels-in-binary-tree/description/
题目
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]. Note: The range of node’s value is in the range of 32-bit signed integer.
题目大意
queue 层次遍历
思路
class Solution {
public List
<Double> averageOfLevels(TreeNode root
) {
List
<Double> res
= new ArrayList<>();
if(root
== null
)
return res
;
Queue
<TreeNode> queue
= new LinkedList<>();
queue
.offer(root
);
while(!queue
.isEmpty()){
int queueSize
= queue
.size();
double tsum
= 0;
int i
= 0;
while(i
++<queueSize
){
TreeNode curNode
= queue
.poll();
tsum
+= curNode
.val
;
if(curNode
.left
!=null
)
queue
.offer(curNode
.left
);
if(curNode
.right
!=null
)queue
.offer(curNode
.right
);
}
res
.add(tsum
/queueSize
);
}
return res
;
}
}