leetcode 404. 左叶子之和

news2024/11/24 17:35:35

2023.7.6

        这道题关键就是要判断某个节点是否为左叶子节点,但是必须要靠他的父节点来判断,逻辑就是其父节点的左孩子不为空 并且 父节点的左孩子的左孩子和右孩子都为空,此时该节点就是左叶子了。 下面用两种迭代法求解:

队列:

class Solution {
public:
    int sumOfLeftLeaves(TreeNode* root) {
        queue<TreeNode*> que;
        int sum = 0;
        que.push(root);
        while(!que.empty())
        {
            int size = que.size();
            while(size--)
            {
                TreeNode* node = que.front();
                que.pop();
                //判断左叶子节点
                if(node->left!=nullptr && node->left->left==nullptr && node->left->right==nullptr) sum += node->left->val;
                if(node->left) que.push(node->left);
                if(node->right) que.push(node->right);
            }
        }
        return sum;
    }
};

 栈:

class Solution {
public:
    int sumOfLeftLeaves(TreeNode* root) {
        stack<TreeNode*> stk;
        int sum = 0;
        stk.push(root);
        while(!stk.empty())
        {
            TreeNode* node = stk.top();
            stk.pop();
            if(node->left!=nullptr && node->left->left==nullptr && node->left->right==nullptr) sum += node->left->val;
            if(node->right) stk.push(node->right);
            if(node->left) stk.push(node->left);
        }
        return sum;
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/723198.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

聚观早报|比亚迪在巴西建工厂;国产Model系列贡献约半数交付量

今日要闻&#xff1a;比亚迪在巴西建三座工厂&#xff1b;小米对华为锁屏专利发起无效宣告请求&#xff1b;国产Model系列贡献约半数交付量&#xff1b;杨澜公司回应数百万财产被冻结&#xff1b;雅虎公司计划重新上市 比亚迪在巴西建三座工厂 7 月 5 日消息&#xff0c;据比亚…

C语言学习(三十三)---动态内存(二)

在上一节的内容中&#xff0c;我们初步学习了有关动态内存的有关内容&#xff0c;但是在使用上实际上还有很多的细节问题&#xff0c;今天我们将继续对该部分的内容进行学习&#xff0c;好了&#xff0c;话不多说&#xff0c;开整&#xff01;&#xff01;&#xff01; 动态内…

第一章 Android 基础--开发环境搭建

文章目录 1.Android 发展历程2.Android 开发机器配置要求3.Android Studio与SDK下载安装4.创建工程与创建模拟器5.观察App运行日志6.环境安装可能会遇到的问题7.练习题 本专栏主要在B站学习视频&#xff1a; B站Android视频链接 本视频范围&#xff1a;P1—P8 1.Android 发展历…

【机器学习核心总结】什么是KNN( K近邻算法)

什么是KNN( K近邻算法) 虽然名字中有NN&#xff0c;KNN并不是哪种神经网络&#xff0c;它全名K-Nearest-Neighbors&#xff1a;K近邻算法&#xff0c;是机器学习中常用的分类算法。 物以类聚&#xff0c;人以群分。KNN的基础思想很简单&#xff0c;要判断一个新数据的类别&…

AI最新开源:LMSYS Org开源LongChat、法律大语言模型ChatLaw、中文医疗对话模型扁鹊

一周SOTA&#xff1a;LMSYS Org开源LongChat、法律大语言模型ChatLaw、中文医疗对话模型扁鹊 文章目录 1. LMSYS Org发布LongChat&#xff0c;上下文碾压64K开源模型2. 北大团队发布法律大模型 ChatLaw3. 扁鹊&#xff1a;指令与多轮问询对话联合微调的医疗对话大模型 1. LMSY…

Linux 内核源代码情景分析(四)

系列文章目录 Linux 内核设计与实现 深入理解 Linux 内核 Linux 设备驱动程序 Linux设备驱动开发详解 深入理解Linux虚拟内存管理 Linux 内核源代码情景分析&#xff08;一&#xff09; Linux 内核源代码情景分析&#xff08;二&#xff09; Linux 内核源代码情景分析&#xff…

开源项目推荐 【SkyEyeSystem】

大家好&#xff0c;今天向大家推荐一个开源项目——SkyEyeSystem。 这是一个基于Spring Boot的全网热点爬虫项目&#xff0c;旨在提供全面而准确的全网热搜数据。 关于项目 SkyEyeSystem通过定时任务间隔10min爬取全网热搜数据。目前包括的平台有&#xff1a; 微博热搜B站热…

Huawei Cloud EulerOS 安装 MySQL8.0

EulerOS 安装 MySQL8.0 安装MySQL配置文件 安装MySQL 当创建一个基于EulerOS的服务器时&#xff0c;MySQL是一个常见且强大的数据库管理系统选择。在此博客中&#xff0c;我将向您展示如何在EulerOS上安装MySQL 8.0。 步骤1&#xff1a;更新系统 在开始之前&#xff0c;让我…

【FATE】联邦学习 optimizer在FATE的自定义trainer中被改变

起因 使用torch的optimizer添加了2组parameter&#xff0c;传参进入FATE的trainer后&#xff0c;optimizer被改变&#xff0c;且FATE框架无提示。 代码差不多是下面这样&#xff1a; # optimizer中加入2组优化参数&#xff08;param&#xff09; optimizer torch.optim.SGD…

滑动窗口 /【模板】单调队列

day1 滑动窗口 /【模板】单调队列 题目描述 有一个长为 n n n 的序列 a a a&#xff0c;以及一个大小为 k k k 的窗口。现在这个从左边开始向右滑动&#xff0c;每次滑动一个单位&#xff0c;求出每次滑动后窗口中的最大值和最小值。 例如&#xff1a; The array is [ …

mysql redis区别

一、.redis和mysql的区别总结 &#xff08;1&#xff09;类型上 从类型上来说&#xff0c;mysql是关系型数据库&#xff0c;redis是缓存数据库 &#xff08;2&#xff09;作用上 mysql用于持久化的存储数据到硬盘&#xff0c;功能强大&#xff0c;但是速度较慢 redis用于存储使…

NSS [NSSCTF 2022 Spring Recruit]ezgame

NSS [NSSCTF 2022 Spring Recruit]ezgame 前端小游戏&#xff0c;乐。

【雕爷学编程】Arduino动手做(136)---0.91寸OLED液晶屏模块3

0.91寸OLED模块引脚说明 GND ------ 地线 VCC ------ 电源 &#xff08;因为模块内部自带稳压&#xff0c;所以3.3~5V供电都是ok的&#xff09; SDA ------ I2C 数据线&#xff08;接A4&#xff09; SCL ------ I2C 时钟线&#xff08;接A5&#xff09; &#xff08;可以…

Pairwise 提高测试造数据的困难

Pairwise是L. L. Thurstone(29 May1887 – 30 September 1955)在1927年首先提出来的。他是美国的一位心理统计学家。Pairwise也正是基于数学统计和对传统的正交分析法进行优化后得到的产物。 下图是另一个项目结构 (造一个csv转测试用例) selenium的挑战者 - playwright简析 搭…

代码随想录二刷day44 | 动态规划之 完全背包 518. 零钱兑换 II 377. 组合总和 Ⅳ

day44 完全背包基础知识问题描述举个栗子 518. 零钱兑换 II1.确定dp数组以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例推导dp数组 377. 组合总和 Ⅳ1.确定dp数组以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例来推导dp数组 完全背…

Android之OkHttp框架的分析

Okhttp是Android开发常用的一个网络请求框架&#xff0c;下面将按照自己的理解将okhttp分为三条主线进行分析。 文章目录 使用方式OkHttp第一条主线&#xff1a;请求发送到哪里去了&#xff1f;OkHttp第二条主线&#xff1a;请求是如何被消费的&#xff1f;OkHttp第三条主线&a…

376. 摆动序列

如果连续数字之间的差严格地在正数和负数之间交替&#xff0c;则数字序列称为 摆动序列 。第一个差&#xff08;如果存在的话&#xff09;可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。 例如&#xff0c; [1, 7, 4, 9, 2, 5] 是一个 摆动序列 &…

机器学习 day24(多类分类模型)

多类分类 多类分类问题仍然是分类问题&#xff0c;所以预测y的可能结果是少量的&#xff0c;而不是无穷多个&#xff0c;且对于多类分类它&#xff1e;2 如上图&#xff1a;左侧为二分类&#xff0c;右侧为多分类&#xff0c;可以通过决策边界来划分区域

EasyExcel导出横向动态表头

需求&#xff1a;导出如下所示excel文档&#xff0c;红框内为动态表头 mysql表内数据格式如下图所示&#xff0c;由于某些特殊原因不能横向展示&#xff0c;仅能纵向展示&#xff0c;所以一个vin对应的数据可能有很多此时导出的时候上图所示的样式更便于人员观看。 依赖项 <…

VS多处理器编译提高编译速度

VS多处理器编译提高编译速度 开启多处理器编译能够提升编译速度&#xff0c;特别是当工程巨大时候&#xff0c;编译速度往往很慢&#xff0c;打开多处理器编译效果明显&#xff0c;下面给出设置和对比 开启多处理器编译 关闭多处理器编译