I want you to pick my code apart and give me some feedback on how I could make it better or simpler.
public int heightHelper(TreeNode node) {
int height = -1;
if (node == null) return height;
final Queue<TreeNode> queue = new LinkedList<TreeNode>();
queue.add(node);
int currentLevelNodeCount = 1;
int nextLevelNodeCount = 0;
while (!queue.isEmpty()) {
TreeNode current = queue.poll();
currentLevelNodeCount--;
if (current.left != null) { queue.add(current.left); nextLevelNodeCount++; }
if (current.right != null) { queue.add(current.right); nextLevelNodeCount++; }
// current level is done.
if (currentLevelNodeCount == 0) {
height++;
currentLevelNodeCount = nextLevelNodeCount;
nextLevelNodeCount = 0;
}
}
return height;
}