leetcode 404. Sum of Left Leaves
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.
AC:
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
int travel(struct TreeNode* root,int sign)
{
if(root==NULL){
return 0;
}
int leftSum=0;
int rightSum=0;
if(root->left!=NULL){
leftSum=travel(root->left,1);
}
if(root->right!=NULL){
rightSum=travel(root->right,2);
}
if(sign==1)
{
if(root->left!=NULL||root->right!=NULL){
return leftSum+rightSum;
}
return leftSum+rightSum+root->val;
}
else
{
return leftSum+rightSum;
}
}
int sumOfLeftLeaves(struct TreeNode* root) {
int result=travel(root,0);
return result;
}
tips: 只能加叶子结点的val~