Day3 EP-404 Sum of Left Leaves

一.问题描述 Sum of Left Leaves

Day3 EP-404 Sum of Left Leaves_第1张图片
问题描述

二.问题解决

/**
 * 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 num=0;
        if(!root){
            return 0;
        }
        if(root->left && !root->left->left && !root->left->right){
            num=root->left->val;
        }
        return num + sumOfLeftLeaves(root->left)+ sumOfLeftLeaves(root->right);
    }
};

二叉树的题目,多用递归方法,重点在于找准跳出递归的出口,也就是真正的return的部分;

本题目的出口就在于一个是当节点为空的时候,返回0;
当节点的孩子的孩子为空的时候(说明此时是叶子节点),返回节点的左孩子的值;
当不是孩子不是叶子节点的时候,返回左子树左叶子值加上右子树节点的左孩子的值。

以上,继续加油啦。

你可能感兴趣的:(Day3 EP-404 Sum of Left Leaves)