C语言每日一题(59)左叶子之和

题目链接

力扣网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

思路分析

知识点:递归、深度优先搜索

解析: 

这里是深度优先搜索的经典运用。题目要求找左叶子的和,那么前提是它一定是一个叶子结点,其次才判断它是否是左叶子。

这里采用一个bool函数再判断一下是否为叶子结点

如果根结点为空,返回0;

其次去往左子树找,如果左子树存在且不为叶子结点的话,继续往它的左子树找,直到找到叶子结点为止,如果是叶子结点,直接返回它的值累加到一个变量里。

最后去往右子树找,右子树的递归条件和左子树不一样,因为右子树也会存在有左叶子结点的情况,所以如果右子树是一个叶子结点的话就没必要递归了,但如果不是的话,就得往右子树里找。

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     struct TreeNode *left;*     struct TreeNode *right;* };*/bool isleaves(struct TreeNode* root)
{return root->left==NULL&&root->right==NULL;
}
int dfs(struct TreeNode* root)
{int ans=0;if(root->left){ans+=isleaves(root->left)?root->left->val:dfs(root->left);}if(root->right&&!isleaves(root->right)){ans+=dfs(root->right);}return ans;}int sumOfLeftLeaves(struct TreeNode* root){return root==NULL?0:dfs(root);}

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

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

相关文章

基于SpringBoot的高校竞赛管理系统

基于SpringBoot的高校竞赛管理系统的设计与实现~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBootMyBatis工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 主页 个人中心 管理员界面 老师界面 摘要 高校竞赛管理系统是为了有效管理学校…

K8s进阶之路-命名空间级-服务发现 :

服务发现&#xff1a; Service&#xff08;东西流量&#xff09;&#xff1a;集群内网络通信、负载均衡&#xff08;四层负载&#xff09;内部跨节点&#xff0c;节点与节点之间的通信&#xff0c;以及pod与pod之间的通信&#xff0c;用Service暴露端口即可实现 Ingress&#…

Vscode python pyside6 制作视频播放器

一、界面如下 包含控件 qcombox、qtablewidget、qpushbotton、qverticalslider 二、运行代码 media_player.py import sysfrom PySide6 import QtWidgets from PySide6.QtWidgets import * from PySide6.QtMultimedia import * from PySide6.QtMultimediaWidgets import QVi…

林浩然与杨凌芸的Java List大冒险

林浩然与杨凌芸的Java List大冒险 Lin Haoran and Yang Lingyun’s Java List Adventure 在一个阳光明媚的日子&#xff0c;程序员界的“侠客”林浩然和他那聪明伶俐的同事兼好友杨凌芸正在Java王国里进行一场别开生面的大冒险。这次他们的目标是征服两个强大的List家族成员——…

图论之dfs与bfs的练习

dfs--深度优选搜索 bfs--广度优先搜索 迷宫问题--dfs 问题&#xff1a; 给定一个n*m的二维迷宫数组其中S是起点&#xff0c;T是终点&#xff0c;*是墙壁&#xff08;无法通过&#xff09;&#xff0c; .是道路 问从起点S出发沿着上下左右四个方向走&#xff0c;能否走到T点&a…

视频监控需求八问:视频智能分析/视频汇聚平台EasyCVR有何特性?

最近TSINGSEE青犀视频在与业内伙伴进行项目合作的过程中&#xff0c;针对安防监控可视化视频管理系统EasyCVR视频融合平台在电信运营商项目中的应用&#xff0c;进行了多方面的项目需求沟通。今天我们就该项目沟通为案例&#xff0c;来具体了解一下用户关心度较高的关于视频智能…

MySql报错:Statement violates GTID consistency: CREATE TABLE ... SELECT.解决

一 解决Statement violates GTID consistency: CREATE TABLE ... SELECT 问题&#xff1a; mysql在备份表时报错Statement violates GTID consistency: CREATE TABLE ... SELECT. CREATE TABLE tmp_fix0219 AS SELECT trade_no,ctime FROM charge_data_log 执行后&#xf…

SNMP——简单网络管理协议

Q 什么SNMP? A:SNMP是广泛应用于TCP/IP网络的网络管理标准协议&#xff0c;该协议能够支持网络管理系统&#xff0c;用以监测连接到网络上的设备是否有任何引起管理上关注的情况。SNMP采用轮询机制&#xff0c;提供最基本的功能集&#xff0c;适合小型、快速、低价格的环境使…

vue项目中下载静态资源里的pdf文件

1.把文件放在项目目录src/assets文件下 2.在项目是用a标签下载 <a:href"require(/assets/download.pdf)"download"使用说明.pdf"target"_blank"><img src"/assets/banner.png" class"bannerimg"/></a> 以…

什么是485远程水表?

485远程水表是一种利用RS485通信协议进行数据传输的智能水表&#xff0c;它具有远程读数、实时监控、数据存储等功能&#xff0c;为水资源管理和居民用水提供了便捷。在我国&#xff0c;随着物联网、大数据等技术的发展&#xff0c;485远程水表得到了广泛的应用&#xff0c;为智…

引领企业服务新篇章,纷享销客揽获4项大奖

近日&#xff0c;连接型CRM的开创者纷享销客&#xff0c;凭借其卓越的整体实力&#xff0c;分别荣获《互联网周刊》&eNet研究院“2023年度最佳企业服务产品奖”、携手盈建科荣获中国工业报社“数字化转型优秀案例”、入选产业家“2023产业数字化金铲奖”以及KVBrand“2023年…

BUUCTF第二十二、二十三题解题思路

第二十二题[WUSTCTF2020]level1 查壳 64位ELF文件&#xff0c;用64位IDA打开。 在函数界面可以看到一个“flag”&#xff0c;跟进该函数。 int __cdecl main(int argc, const char **argv, const char **envp) {int i; // [rsp4h] [rbp-2Ch]FILE *stream; // [rsp8h] [rbp-2…

Java项目中,值的对应问题

数据库表 实体类&#xff08;对应数据库的字段&#xff0c;可以驼峰命名&#xff09; 封装的查询方法sql List<Student> getAllStudents(String name,String studentId,Integer classId,String className); 这里的值一一对应。 在多表查询时&#xff0c;查询到的指定字段…

JAVA高并发——核心知识点

文章目录 1、重要概念1.1、同步(Synchronous)和异步(Asynchronous)1.2、并发(Concurrency)和并行(Parallelism)1.3、临界区1.4、阻塞(Blocking)和非阻塞(Non-Blocking)1.5、死锁(Deadlock)、饥饿(Starvation)和活锁(Livelock)1.6、并发级别1.6.1、阻塞1.6.2、无饥饿(Starvation…

2011-2022年上市公司ESG表现、制造业高质量发展与数字化转型原始数据计算结果do代码

2011-2022年上市公司ESG表现、制造业高质量发展与数字化转型 原始数据(exceldta)计算结果do代码 参照王丹&#xff08;2023&#xff09;的做法&#xff0c;对来自统计与决策《ESG表现、制造业高质量发展与数字化转型》一文中的基准回归部分进行复刻&#xff1a; 1、数据时间&a…

两个发散级数的和是否发散?

1、两个发散级数的和可能是收敛的也可能是发散的。 例子&#xff1a; 发散级数 ∑ 1 n \sum\frac{1}{n} ∑n1​和发散级数 ∑ ( 1 n 2 − 1 n ) \sum(\frac{1}{n^{2}}-\frac{1}{n}) ∑(n21​−n1​)的和是收敛级数&#xff1b; 发散级数∑(1/n) 和发散级数 ∑(1/n1/n) 的和是…

为什么你用的redis没有出现雪崩,击穿,穿透

一、前言 在大规模并发访问系统中&#xff0c;如果你的系统用到redis&#xff0c;在面试的时候面试官往往会问你的系统有没有出现雪崩&#xff0c;击穿&#xff0c;穿透这样的场景&#xff0c;然后是怎样解决的。博主也经常反复温习redis的特性&#xff0c;总是被雪崩&#xf…

不懂咱就学,记不住多看几遍(二)

一、Redis分布式锁中加锁与解锁、过期如何续命 实现要点&#xff1a; 互斥性&#xff0c;同一时刻&#xff0c;只能有一个客户端持有锁。防止死锁发生&#xff0c;如果持有锁的客户端因崩溃而没有主动释放锁&#xff0c;也要保证锁可以释放并且其他客户端可以正常加锁。加锁和…

WPF中样式

WPF中样式:类似于winform中控件的属性 <Grid><!-- Button属性 字体大小 字体颜色 内容 控件宽 高 --><Button FontSize="20" Foreground="Blue" Content="Hello" Width="100" Height="40"/></Grid&g…

proteus8.15图文安装教程

proteus8.15版本可以用STM32系列单片机来进行仿真设计&#xff0c;比7.8版本方便多了&#xff0c;有需要的朋友们可以在公众号后台回复 proteus8.15 获取软件包。 1、下载好软件包&#xff0c;解压如下&#xff0c;右键proteus8.15.sp1以管理员身份运行。 2、第一次安装&#x…