关关的刷题日记 55 – Leetcode 404. Sum of Left Leaves

关关的刷题日记55 – Leetcode 404. Sum of Left Leaves

题目

Find the sum of all left leaves in a given binary tree.

思路

思路:题目让我们求一棵二叉树左叶子节点值的和。

  • 如何判断一个节点是左叶子节点?该节点必须满足是左子树节点,且该节点的左右子树都是空的。
  • 接下来如果这棵树是空的:那么左叶子节点的和为0。如果这棵树不是空的:
    1、如果其左子树是左叶子节点,那么我们就把它的值和右子树的左叶子节点的和加起来;
    2、如果其左子树不是左叶子节点,我们就把左子树和右子树的左叶子节点的和加起来。
    求左子树和右子树的左叶子节点的和的方法和求这棵树的左叶子节点的和的方法是一样的,采用递归的解法。

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


照顾好自己的身体,控制好自己的情绪,加油!

以上就是关关关于这道题的总结经验,希望大家能够理解,有什么问题可以在我们的专知公众号平台上交流或者加我们的QQ专知-人工智能交流群 426491390,也可以加入专知——Leetcode刷题交流群(请先加微信小助手weixinhao: Rancho_Fang)。 同时请,关注我们的公众号,获取最新关于专知以及人工智能的资讯、技术、算法等内容。扫一扫下方关注我们的微信公众号。

图片

展开全文
相关主题
Top
微信扫码咨询专知VIP会员