signed

QiShunwang

“诚信为本、客户至上”

404. 左叶子之和

2021/3/21 2:57:11   来源:

在这里插入图片描述
来一个res记录,如果为空就返回0,不然就判断当前结点的左子结点是否为空,如果不为空就判断当前结点的左子结点是否为叶子,如果是叶子,就更新res,然后递归左右,最后返回res。
最重要的是不用管自身是什么结点,只需要判断自己的左子结点就行了,还一直在纠结怎么判断自己是什么结点的就错了

class Solution {
public:
    int sumOfLeftLeaves(TreeNode* root) {
        if(root == NULL) return 0;
        if(root->left != NULL && root->left->left == NULL && root->left->right == NULL){
            res += root->left->val;
        }
        sumOfLeftLeaves(root->left);
        sumOfLeftLeaves(root->right);
        return res;
    }
private:
    int res = 0;
};