404. Sum of Left Leaves

来源:互联网 发布:decodeurl源码 编辑:程序博客网 时间:2024/04/30 23:10

原题链接:https://leetcode.com/problems/sum-of-left-leaves/
原题:
Find the sum of all left leaves in a given binary tree.

    3   / \  9  20    /  \   15   7There are two left leaves in the binary tree, with values 9 and 15 respectively. Return 24.

题意:
给你一棵二叉树,要求你把所有最底部的左叶子值加起来,输出结果。

注意点:
我本来以为只要是左叶子的值,就应该加起来
但是看一下例子,
这里写图片描述
这里的预期值是5。
也就是说2 ,1,3这几个值是不会加上的,所以你要求的是像图中值为5的叶子这样的没有子节点的叶子的值。只要注意这一点,就可以利用分治的思想来写题了。

AC代码:

/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    int sumOfLeftLeaves(TreeNode* root) {        int sum=0;        if(root == NULL) return 0;        if(root->left!=NULL&&root->left ->left==NULL&&root->left->right==NULL)          sum += root->left->val;        sum+=sumOfLeftLeaves(root->left);        sum+=sumOfLeftLeaves(root->right);        return sum;    }};
0 0