计算给定二叉树的所有左叶子之和。
示例:
3 / \ 9 20 / \ 15 7 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24
class Solution {
public:
int sumOfLeftLeaves(TreeNode* root)
{
if(!root) return 0;
int nums = 0;
dfs(root, nums, false);
return nums;
}
void dfs(TreeNode *root, int &nums, bool flag)
{
if(!root) return;
if(!root->left && !root->right)
{
if(flag)
{
nums += root->val;
return;
}
return;
}
dfs(root->left, nums, true);
dfs(root->right, nums, false);
}
};