给你一棵二叉树,请你返回层数最深的叶子节点的和。
输入:root = [1,2,3,4,5,null,6,7,null,null,null,null,8]
输出:15
dfs记录每层的和即可。
class Solution {
public:
int deepestLeavesSum(TreeNode* root) {
if( root == NULL ) return 0;
queue<TreeNode *> q;
int ans = 0;
q.push(root);
while( q.size() ) {
int n = q.size();
ans = 0;//刷新上一层的和
for( int i = 0; i < n; i++ ) {
TreeNode *l = q.front();
q.pop();
ans += l->val;
if( l->left != NULL ) q.push(l->left);
if( l->right != NULL ) q.push(l->right);
}
}
return ans;
}
};