我是采用一个,参数中加入一个flag的技巧,自己AC的。如果是左孩子,则遍历时,flag置为1;否则如果是右孩子,flag置为2.
class Solution {
public:
int ret;
void dfs(TreeNode* root,int flag)
{
if(root==NULL) return;
dfs(root->left,1);
dfs(root->right,2);
if(root->left==NULL&&root->right==NULL&&flag==1) ret=ret+root->val;
}
int sumOfLeftLeaves(TreeNode* root) {
dfs(root,0);
return ret;
}
};