404. Sum of Left Leaves
Find the sum of all left leaves in a given binary tree.
Example:
3 / \ 9 20 / \ 15 7 There are two left leaves in the binary tree, with values 9 and 15 respectively. Return 24.
/** * 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) { if(!root) return 0; int sum = 0; dfs(root,sum,false); return sum; } void dfs(TreeNode *root,int &sum,bool isLeft) { if(!root) return; if(root->left==NULL && root->right==NULL&&isLeft) sum+=root->val; dfs(root->left,sum,true);//借助变量的做法。 dfs(root->right,sum,false); } };