404. 左叶子之和

Posted Debroon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了404. 左叶子之和相关的知识,希望对你有一定的参考价值。

404. 左叶子之和

题目

传送门:https://leetcode.cn/problems/sum-of-left-leaves/


 


算法设计:深度优先搜索

遍历一遍二叉树,找到左叶子节点,累加值。

问题在于,左叶子怎么表示?

if (root.left != null && root.left.left == null && root.left.right == null) 
// 找到左侧的叶子节点,记录累加值
	sum += root.left.val;

我们有更好的写法:

  • 在判断叶子节点的时候,把右叶子节点设置为 0
class Solution 
public:
    int sumOfLeftLeaves(TreeNode* root, bool isleft = false) 
        if (!root) return 0;
        if (!root->left && !root->right) return isleft ? root->val : 0;
        // 是叶子节点,且是左叶子节点
        
        return sumOfLeftLeaves(root->left, true) + sumOfLeftLeaves(root->right, false);
        // 左叶子累加和 = 左叶子和 + 0
    
;

以上是关于404. 左叶子之和的主要内容,如果未能解决你的问题,请参考以下文章

leetcode 404. 左叶子之和

LeetCode--404--左叶子之和

leetcode404_左叶子之和

LeetCode-404-左叶子之和

Leetcode404.左子树之和

leetcode 404. 左叶子之和(Sum of Left Leaves)