LeetCode 404. Sum of Left Leaves

404. Sum of Left Leaves

Description

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.

Solution

  • 题意即求和作为左子树的叶子结点的值。
  • 整体解题思想是遍历但是不遍历右叶子,如果当前是叶子结点,那么一定是左叶子,那么累和。
  • 我采用的是中序遍历的方式,对于左子树遍历,可以放心大胆,因为不会遍历到右叶子,然后判断当前根节点,如果是叶子那么累和,对于右子树遍历,需要确认该右子树不是叶节点才能继续遍历,代码如下。
class Solution {
public:
    int rnt = 0;
    void travel(TreeNode *root)  {
        if (!root) return ;
        travel(root->left);
        if (!root->left && !root->right) rnt += root->val;
        if ((root->right) && (root->right->left || root->right->right)) travel(root->right);
    }
    int sumOfLeftLeaves(TreeNode* root) {

        if (!root || (!root->left && !root->right)) return 0;
        travel(root);
        return rnt;
    }
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值