题目: 404. 左叶子之和
404. 左叶子之和
难度简单
计算给定二叉树的所有左叶子之和。
示例:
3
/ \
9 20
/ \
15 7
在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24
解题思路
递归判断该结点是不是叶子,同时传入参数告诉该结点,是不是左子树。
同时满足叶子结点且是左子树,则加入总和中。
代码
class Solution {
private:
int sum;
public:
int sumOfLeftLeaves(TreeNode* root) {
if(!root) return 0;
sumCore(root, 0);
return sum;
}
void sumCore(TreeNode* root, int isLeft){
if(!root) return ;
if(!root->left && !root->right && isLeft) sum+= root->val;
sumCore(root->left, 1);
sumCore(root->right, 0);
}
};