https://leetcode.com/problems/sum-of-left-leaves/
思路:递归求解,给一个标记,向左子树遍历则为true
/**
* 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 sumOfLeftLeaves(TreeNode* root) {
int sum = 0;
recur(root,false,sum);
return sum;
}
void recur(TreeNode* root,bool flag,int &sum){
if(!root)
return;
if(flag && !root->left && !root->right){
sum += root->val;
}
recur(root->left,true,sum);
recur(root->right,false,sum);
}
};