I'm trying to traverse a binary tree by level, then sum the ints held in each node per level which is held in levelSum. I then want to multiply the levelSum by the number of the level that I am at and add this to the totalSum. When I run it I get a NullPointException on line 15 but I haven't been able to figure out why.
public int depthSum() {
Queue<IntTreeNode> q = new LinkedList<IntTreeNode>();
int totalSum = 0;
int levelSum = 0;
int multiplier = 1;
int nodesPerLevel = 0;
if(overallRoot != null) {
q.offer(overallRoot);
nodesPerLevel += 1;
while(!q.isEmpty()) {
int countDown = nodesPerLevel;
while(countDown > 0) {
countDown--;
IntTreeNode n = q.remove();
levelSum += n.data; //this is line 15
if(n.left != null) {
q.offer(n.left);
nodesPerLevel++;
}
if(n.right != null) {
q.offer(n.right);
nodesPerLevel++;
}
}
totalSum += (multiplier * levelSum);
levelSum = 0;
multiplier++;
}
}
return totalSum
}
This is the stack trace:
NullPointerException on line 15:
java.lang.NullPointerException
at IntTree.depthSum (Line 15)