LeetCode 404左葉の合計
指定されたバイナリツリーのすべての左の葉の合計を計算します。
例:
3
/ \
9 20
/ \
15 7
このバイナリツリーには、9と15の2つの左葉があるため、24が返されます。
バイナリツリーでBFSを実行します。ノードの左の子ノードがリーフノードである場合は、それを回答に追加します。ACコードは次のとおりです。
class Solution {
public:
int sumOfLeftLeaves(TreeNode* root) {
int ans=0;
queue<TreeNode*>q;
q.push(root);
while(!q.empty()){
TreeNode* t=q.front();
q.pop();
if(t){
if(t->left){
q.push(t->left);
if(t->left->left==NULL&&t->left->right==NULL) ans+=t->left->val;
}
if(t->right) q.push(t->right);
}
}
return ans;
}
};