力扣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;
    }

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

相关推荐
向上的车轮21 小时前
为什么.NET(C#)转 Java 开发时常常在“吐槽”Java:checked exception
java·c#·.net
Dragon Wu21 小时前
Spring Security Oauth2.1 授权码模式实现前后端分离的方案
java·spring boot·后端·spring cloud·springboot·springcloud
跳动的梦想家h21 小时前
环境配置 + AI 提效双管齐下
java·vue.js·spring
坚持就完事了21 小时前
Java中的集合
java·开发语言
wjhx1 天前
QT中对蓝牙权限的申请,整理一下
java·数据库·qt
YCY^v^1 天前
JeecgBoot 项目运行指南
java·学习
dazzle1 天前
机器学习算法原理与实践-入门(三):使用数学方法实现KNN
人工智能·算法·机器学习
那个村的李富贵1 天前
智能炼金术:CANN加速的新材料AI设计系统
人工智能·算法·aigc·cann
人间打气筒(Ada)1 天前
jenkins基于Pipeline发布项目
java·pipeline·jenkins·流水线·ci·cd·cicd
爬山算法1 天前
Hibernate(88)如何在负载测试中使用Hibernate?
java·后端·hibernate