Just do a level order traversal and calcualte the sum. When your queue is empty, the last sum will be your answer, i.e. the sum of the lowest level
'''
public int deepestLeavesSum(TreeNode root) {
Queue<TreeNode> q = new LinkedList<>();
q.offer(root);
int sum = 0;
while(!q.isEmpty())
{
int ql = q.size();
sum = 0;
while(ql-- > 0)
{
TreeNode curr = q.poll();
sum += curr.val;
if(curr.left!=null)
q.offer(curr.left);
if(curr.right!=null)
q.offer(curr.right);
}
}
return sum;'''