代码随想录——左叶子之和(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;
    }
}
相关推荐
冯诺依曼的锦鲤2 分钟前
算法练习:差分
c++·学习·算法
许商4 分钟前
【stm32】【printf】
java·前端·stm32
JIngJaneIL13 分钟前
智慧物业|物业管理|基于SprinBoot+vue的智慧物业管理系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·论文·智慧物业管理系统
ANYOLY25 分钟前
Redis 面试题库
java·redis·面试
有意义31 分钟前
栈数据结构全解析:从实现原理到 LeetCode 实战
javascript·算法·编程语言
懒惰蜗牛33 分钟前
Day63 | Java IO之NIO三件套--选择器(下)
java·nio·选择器·selector·半包粘包·tcp缓冲区
鹿鹿鹿鹿isNotDefined36 分钟前
逐步手写,实现符合 Promise A+ 规范的 Promise
前端·javascript·算法
JavaGuide39 分钟前
美团2026届后端一二面(附详细参考答案)
java·后端
打工人你好41 分钟前
如何设计更安全的 VIP 权限体系
java·jvm·安全
L.EscaRC1 小时前
Spring IOC核心原理与运用
java·spring·ioc