1302. Deepest Leaves Sum
Medium
509Add to ListShare
Given a binary tree, return the sum of values of its deepest leaves.
Example 1:
Input: root = [1,2,3,4,5,null,6,7,null,null,null,null,8]
Output: 15
Constraints:
- The number of nodes in the tree is between
1
and10^4
. - The value of nodes is between
1
and100
.
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
int deepestLeavesSum(TreeNode* root) {
queue<TreeNode*> q1,q2;
if(root) q1.push(root);
else return 0;
int res=0;
while( !empty(q1) || !empty(q2) ){
res=0;
while(!empty(q1)){
TreeNode *tmp=q1.front();
res+=tmp->val;
if(tmp->right) q2.push(tmp->right);
if(tmp->left) q2.push(tmp->left);
q1.pop();
}
if(!empty(q2)) res=0;
while(!empty(q2)){
TreeNode *tmp=q2.front();
res+=tmp->val;
if(tmp->right) q1.push(tmp->right);
if(tmp->left) q1.push(tmp->left);
q2.pop();
}
}
return res;
}
};
- Runtime: 52 ms, faster than 49.59% of C++ online submissions for Deepest Leaves Sum.
- Memory Usage: 31.9 MB, less than 100.00% of C++ online submissions for Deepest Leaves Sum.
- Next challenges:
- Flatten Binary Tree to Linked List
- Number of Islands
- Sum of Distances in Tree