class Solution {
public:
bool isLeafNode(TreeNode * node){
return !node->left&&!node->right;
}
int dfs(TreeNode* root){
int ans=0;
//左子树不为空,若左子树是叶子节点就加上左子树的值,若不是叶子节点继续dfs计算左子树
if(root->left)ans+=isLeafNode(root->left)?root->left->val:dfs(root->left);
//当前节点右子树不空且不是叶子节点时,dfs计算右子树的左节点
if(root->right&&!isLeafNode(root->right))ans+=dfs(root->right);
return ans;
}
int sumOfLeftLeaves(TreeNode* root) {
return root ? dfs(root) : 0;
}
};