当前位置:网站首页>【LeetCode每日一题】——404.左叶子之和
【LeetCode每日一题】——404.左叶子之和
2022-07-30 00:52:00 【IronmanJay】
一【题目类别】
- 二叉树
二【题目难度】
- 简单
三【题目编号】
- 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
七【解题思路】
- 这个题思路比较简单,首先想到递归,但是应该怎么进行递归呢?
- 首先我们要求的节点应该是左子树节点
- 其次这个左子树节点还应该是叶子节点
- 基于以上两点进行判断,将其求和返回即可
八【时间频度】
- 时间复杂度: O ( l o g 2 N ) O(log_{2}N) O(log2N),其中 N N N为树的结点个数
- 空间复杂度: O ( l o g 2 N ) O(log_{2}N) O(log2N),其中 N N N为树的结点个数
九【代码实现】
- Java语言版
package Tree;
public class p404_SumOfLeftLeaves {
int val;
p404_SumOfLeftLeaves left;
p404_SumOfLeftLeaves right;
public p404_SumOfLeftLeaves() {
}
public p404_SumOfLeftLeaves(int val) {
this.val = val;
}
public p404_SumOfLeftLeaves(int val, p404_SumOfLeftLeaves left, p404_SumOfLeftLeaves right) {
this.val = val;
this.left = left;
this.right = right;
}
public static void main(String[] args) {
p404_SumOfLeftLeaves root = new p404_SumOfLeftLeaves(3);
p404_SumOfLeftLeaves left = new p404_SumOfLeftLeaves(9);
p404_SumOfLeftLeaves right = new p404_SumOfLeftLeaves(20);
p404_SumOfLeftLeaves right1 = new p404_SumOfLeftLeaves(15);
p404_SumOfLeftLeaves right2 = new p404_SumOfLeftLeaves(7);
root.left = left;
root.right = right;
right.left = right1;
right.right = right2;
int res = sumOfLeftLeaves(root);
System.out.println("res = " + res);
}
public static int sumOfLeftLeaves(p404_SumOfLeftLeaves root) {
if (root == null) {
return 0;
}
int res = 0;
if (root.left != null && root.left.left == null && root.left.right == null) {
res += root.left.val;
}
return res + sumOfLeftLeaves(root.left) + sumOfLeftLeaves(root.right);
}
}
- C语言版
#include<stdio.h>
struct TreeNode
{
int val;
struct TreeNode *left;
struct TreeNode *right;
};
int sumOfLeftLeaves(struct TreeNode* root)
{
if (root == NULL)
{
return 0;
}
int res = 0;
if (root->left != NULL && root->left->left == NULL && root->left->right == NULL)
{
res += root->left->val;
}
return res + sumOfLeftLeaves(root->left) + sumOfLeftLeaves(root->right);
}
/*主函数省略*/
十【提交结果】
Java语言版

C语言版

边栏推荐
- canvas 中如何实现物体的框选(六)
- Mysql internal and external connections
- exness: U.S. GDP shrinks, yen bounces back
- Worthington经过使用测试的细胞分离系统方案
- Introduction to Worthington Elastase & Hyaluronidase
- 华为“天才少年”稚晖君又出新作,从零开始造“客制化”智能键盘
- Validation Framework-01
- CMake Tutorial 巡礼(0)_总述
- Filebeat如何保证在日志文件被切割(或滚动rolling)时依然正确读取文件
- Linux - install MySQL (detailed tutorial)
猜你喜欢

Fabric Private Data Case

二维数组的查找

Worthington酶促细胞收获&细胞粘附和收获

低压差线性稳压器MPQ2013A-AEC1品牌MPS国产替代

3 tips for using hot events to create press releases?A must-see for self-media people

【微服务~Nacos】Nacos之配置中心

Vmtouch - under Linux file cache management artifact

Worthington用于细胞收获的胰蛋白酶&细胞释放程序

4 hotspot inquiry networks necessary for new media operations

Unity笔记——FairyGUI
随机推荐
How to realize the frame selection of objects in canvas (6)
QTableWidget usage example
经典毕业设计:基于SSM实现高校后勤报修系统
what is a .pro file in qt
基于SSM开发实现校园疫情防控管理系统
Navicat for mysql crack version installation
Selenium上传文件有多少种方式?不信你有我全
CMake Tutorial 巡礼(0)_总述
KDE Frameworks 5.20.0:Plasma迎来诸多改进
谷歌浏览器(google)设置翻译中文,翻译选项不生效或没有弹出翻译选项
【经验】经验总结-经验教训
STM32——OLED显示实验
[Flutter] Flutter preloading of mixed development solves the problem of slow page loading for the first time
Navicat for mysql破解版安装
循环神经网络(RNN)
Worthington Enzymatic Cell Harvest & Cell Adhesion and Harvest
验证框架-01
SSM integration case
Win11的WSL2系统更换磁盘和wsl使用简介
MATLAB被禁下一个会是LABVIEW吗?国产测试软件ATECLOUD崛起发力