力扣404 左叶子之和

题目:

给定二叉树的根节点 root ,返回所有左叶子之和。

示例:

输入: root = [3,9,20,null,null,15,7] 
输出: 24 
解释: 在这个二叉树中,有两个左叶子,分别是 915,所以返回 24

思路:

一定要注意本题要求的是左叶子之和,是叶子节点的值和。

放上本人写错的左孩子节点之和代码:

class Solution {
    int sum=0;
    public int sumOfLeftLeaves(TreeNode root) {//1.确定返回值和参数
        //2.确定终止条件
        if(root.left==null&&root.right==null){
            return 0;
        }
        //3.单层逻辑:sum+=每层左子树之和:后序遍历
        if(root.left!=null){
            sum+=root.left.val;
            sumOfLeftLeaves(root.left);
        }
        if(root.right!=null){
            sumOfLeftLeaves(root.right);
        }
        return sum;
    }
}

 暴力一点,找是左叶子的节点,直接加:

class Solution {
    public int sumOfLeftLeaves(TreeNode root) {
        int sum=0;
        if(root==null){
            return 0;
        }
        if(root.left!=null){//左孩子
            if(root.left.left==null&&root.left.right==null){//并且是叶子节点
                sum+=root.left.val;
            }
        }
        sum+=sumOfLeftLeaves(root.left)+sumOfLeftLeaves(root.right);
        return sum;
    }
}

 

posted @ 2023-01-31 23:40  壹索007  阅读(8)  评论(0)    收藏  举报