404. 左叶子之和

404. 左叶子之和

原题

java 复制代码
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    int sum = 0;
    public int sumOfLeftLeaves(TreeNode root) {
        //第二个参数代表当前结点是左节点(1),还是右节点(0),一开始传0,让头结点不参与运算
        dfs(root,0);
        return sum;
    }

    public void dfs(TreeNode node,int i){
        if(node==null){
            return;
        }
        //为叶子结点
        if(node.left==null&&node.right==null){
            //为左叶子节点
            if(i==1){
                sum += node.val;
            }
        }
        //左子树递归
        dfs(node.left,1);
        //右子树递归
        dfs(node.right,0);
    }
}   
相关推荐
爱学习的阿磊2 分钟前
C++与Qt图形开发
开发语言·c++·算法
爱敲代码的TOM8 分钟前
基础算法技巧总结2(算法技巧零碎点,基础数据结构,数论模板)
数据结构·算法
liu_endong19 分钟前
杰发科技AC7840——打印所有GPIO的PORT配置寄存器
mcu·算法·杰发科技·autochips·车规芯片
老鼠只爱大米22 分钟前
LeetCode经典算法面试题 #199:二叉树的右视图(BFS双队列法、DFS递归法等多种实现方案详细解析)
算法·leetcode·二叉树·dfs·bfs·深度优先搜索·右视图
历程里程碑24 分钟前
子串-----和为 K 的子数组
java·数据结构·c++·python·算法·leetcode·tornado
一起养小猫25 分钟前
Flutter for OpenHarmony 进阶:表达式解析算法与计算器核心实现
算法·flutter·harmonyos
池央31 分钟前
贪心-最长递增子序列
算法·贪心算法
We་ct36 分钟前
LeetCode 383. 赎金信:解题思路+代码解析+优化实战
前端·算法·leetcode·typescript
不懒不懒1 小时前
【逻辑回归从原理到实战:正则化、参数调优与过拟合处理】
人工智能·算法·机器学习
一只大袋鼠1 小时前
分布式 ID 生成:雪花算法原理、实现与 MyBatis-Plus 实战
分布式·算法·mybatis