Deepest Leaves Sum
给一个二叉树, 返回最后一层的sum. 这个题我用的是层序扫描.
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
int res = 0;
public int deepestLeavesSum(TreeNode root) {
if(root == null)
return res;
Queue<TreeNode> q = new LinkedList<>();
q.add(root);
List<TreeNode> list = new ArrayList<>();
while(q.size() != 0) {
int size = q.size();
List<TreeNode> tmp = new ArrayList<>();
for(int i = 0; i < size; i++) {
TreeNode n = q.poll();
tmp.add(n);
if(n.left != null)
q.add(n.left);
if(n.right != null)
q.add(n.right);
}
list = tmp;
}
for(TreeNode node : list)
res += node.val;
return res;
}
}