404. 左叶子之和(递归)


文章目录

题目

计算给定二叉树的所有左叶子之和。
在这里插入图片描述

解题思路

第一步:找到叶子节点
第二步:判断叶子节点是不是左叶子节点。可以给help参数加一个isLeft来标识。

当递归的是左子树的时候那么就是true,右子树为false

代码

class Solution {
    int sum=0;
    public int sumOfLeftLeaves(TreeNode root) {
        if(root==null){
            return sum;
        }

        help(root,false);//根节点不可能是左叶子节点,所以直接传个false
        return sum;
    }

    public void help(TreeNode root ,boolean isLeft){
        if(root==null){
            return ;
        }

        if(root.left==null&&root.right==null&&isLeft){//是否为左叶子节点
            sum+=root.val;
        }
            help(root.left,true);//因为是遍历的左子树,所以叶子节点肯定是左叶子节点
            help(root.right,false);//因为是遍历的右子树,所以叶子节点肯定不是左叶子节点
    }
}

文章作者: fFee-ops
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 fFee-ops !
评论
  目录