Input: root =[1,7,0,7,-8,null,null]Output: 3Explanation:
Level 1 sum =1.Level 2 sum =7+0=7.Level 3 sum =7+-8=-1.So we return the level with the minimum sum which is level 3.
classSolution {
public int minLevelSum(TreeNode root) {
int min = Integer.MAX_VALUE, minLevel =1;
Queue<TreeNode> q = new LinkedList<>();
q.offer(root);
for (int level =1; !q.isEmpty(); ++level) {
int sum =0;
int sz = q.size();
while (sz >0) {
TreeNode n = q.poll();
sum += n.val;
if (n.left != null) {
q.offer(n.left);
}
if (n.right != null) {
q.offer(n.right);
}
}
if (min > sum) {
min = sum;
minLevel = level;
}
}
return minLevel;
}
}