力扣404 左叶子之和

404.左叶子之和

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

示例 1:

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

示例 2:

复制代码
输入: root = [1]
输出: 0

提示:

  • 节点数在 [1, 1000] 范围内
  • -1000 <= Node.val <= 1000

判断当前节点是不是左叶子是无法判断的,必须要通过节点的父节点来判断其左孩子是不是左叶子,如果该节点的左节点不为空,该节点的左节点的左节点为空,该节点的左节点的右节点为空,则找到了一个左叶子。

具体代码实现如下:

java 复制代码
    public static void main(String[] args) {
        TreeNode treeNode = new TreeNode(3);
        treeNode.left = new TreeNode(9);
        treeNode.right = new TreeNode(20);
        treeNode.right.left = new TreeNode(15);
        treeNode.right.right = new TreeNode(7);
        System.out.println(sumOfLeftLeaves(treeNode));
    }

    public static int sumOfLeftLeaves(TreeNode root) {
        int res = 0;
        res = dfs(root);
        return res;
    }

    public static int dfs(TreeNode root){
        if (root == null){
            return 0;
        }
        if (root.left != null && root.left.left == null && root.left.right == null){ // 判断是否是左叶子
            int right = dfs(root.right);
            return root.left.val + right;
        }
        int left = dfs(root.left);
        int right = dfs(root.right);
        return left + right;
    }

以上为记录分享用,代码较差请见谅

相关推荐
Jasmine_llq8 分钟前
《P15800 [GESP202603 六级] 选数》
数据结构·long long·逆序线性 dp·从后往前推导·转移严格遵循题意·防止总和溢出·复杂度on
疯狂打码的少年22 分钟前
【数据结构】串(字符串):基本概念与存储
数据结构·笔记
云烟成雨TD33 分钟前
Micrometer 系列【42】链路追踪:Span 体系 | 核心 API
java·链路追踪·micrometer
Gorway40 分钟前
理解 Spring 依赖注入:从构造器注入到集合与条件 Bean
java·后端
LiLiYuan.1 小时前
【字符串常量池】
java·开发语言·面试
Sylvia33.1 小时前
从轮询到推送:足球数据API架构演进与火星数据技术拆解
java·服务器·网络·python·websocket·架构
cfm_29141 小时前
高并发系统缓存全解
java·缓存
16月6日-晴1 小时前
Java面向对象进阶—static
java·开发语言
致Great2 小时前
科研人的 AI,不该只回答问题:我用字节TraeWork 跑了一遍真实研究任务
算法
纵有疾風起2 小时前
线性表的定义与基本操作 — 从逻辑结构到 ADT 接口
数据结构·算法·408·线性表·adt