代码随想录——左叶子之和(Leetcode404)

题目链接

BFS + 队列

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 {
    public int sumOfLeftLeaves(TreeNode root) {
        int sum = 0;
        Deque<TreeNode> queue = new LinkedList<TreeNode>();
        if(root == null){
            return sum;
        }
        queue.offer(root);
        while(!queue.isEmpty()){
            int size = queue.size();
            for(int i = 0; i < size; i++){
                TreeNode node = queue.poll();
                if(node.left != null){
                    queue.offer(node.left);
                    // 注意题目要求是求左叶子之和,所以需要判断一下左节点是否为叶子节点
                    if(node.left.left == null && node.left.right == null){
                        sum += node.left.val;
                    }
                }
                if(node.right != null){
                    queue.offer(node.right);
                }
            }
        }
        return sum;
    }
}
相关推荐
转调9 分钟前
每日一练:地下城游戏
开发语言·c++·算法·leetcode
Java探秘者10 分钟前
Maven下载、安装与环境配置详解:从零开始搭建高效Java开发环境
java·开发语言·数据库·spring boot·spring cloud·maven·idea
攸攸太上11 分钟前
Spring Gateway学习
java·后端·学习·spring·微服务·gateway
2301_7869643616 分钟前
3、练习常用的HBase Shell命令+HBase 常用的Java API 及应用实例
java·大数据·数据库·分布式·hbase
2303_8120444619 分钟前
Bean,看到P188没看了与maven
java·开发语言
苹果醋320 分钟前
大模型实战--FastChat一行代码实现部署和各个组件详解
java·运维·spring boot·mysql·nginx
秋夫人22 分钟前
idea 同一个项目不同模块如何设置不同的jdk版本
java·开发语言·intellij-idea
m0_6640470227 分钟前
数字化采购管理革新:全过程数字化采购管理平台的架构与实施
java·招投标系统源码
不穿格子衬衫38 分钟前
常用排序算法(下)
c语言·开发语言·数据结构·算法·排序算法·八大排序
wdxylb1 小时前
使用C++的OpenSSL 库实现 AES 加密和解密文件
开发语言·c++·算法