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.
题目:将一棵树上所有的左叶子节点进行求和。
思路:关键在于找到终止条件,如果一棵树为空,返回0;如果左子树存在且为叶子结点,则将其值加入到sum中去,然后再递归去求左子树中左叶子节点之和和右子树中左叶子节点之和 。
因此写出如下代码:
class Solution {
public:
int sumOfLeftLeaves(TreeNode* root) {
int sum = 0;
if(root == NULL)
return 0;
if(root->left!=NULL)
if(root->left->left == NULL&&root->left->right==NULL)
sum += root->left->val;
sum += sumOfLeftLeaves(root->left) + sumOfLeftLeaves(root->right);
return sum;
}
};
beats 100%