Idea
attention:先看清楚题目,题目说的是左叶子结点,不是左结点【泣不成声】
遇到像这种二叉树类型的题目呢,我们一般还是选择dfs,然后类似于前序遍历的方式加上判断条件即可
AC Code
cpp
class Solution {
public:
void dfs(TreeNode *root, int &sum) {
if(root) {
if(root->left && !root->left->left && !root->left->right) sum += root->left->val;
dfs(root->left, sum);
dfs(root->right, sum);
}
}
int sumOfLeftLeaves(TreeNode* root) {
int ans = 0;
dfs(root, ans);
return ans;
}
};