LeetCode 404.左叶子之和

ops/2024/11/28 12:32:47/

题目:给定二叉树的根节点 root ,返回所有左叶子之和。

思路:一个节点为「左叶子」节点,当且仅当它是某个节点的左子节点,并且它是一个叶子结点。因此我们可以考虑对整 node 时,如果它的左子节点是一个叶子结点,那么就将它的左子节点的值累加计入答案。

代码

/*** 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) {return root == null ? 0 : dfs(root);}private int dfs(TreeNode node) {int ans = 0;if (node.left != null) {ans += isLeafNode(node.left) ? node.left.val : dfs(node.left);}if (node.right != null && !isLeafNode(node.right)) {ans += dfs(node.right);}return ans;}private boolean isLeafNode(TreeNode node) {if (node.left == null && node.right == null) {return true;}return false;}
}

性能

时间复杂度o(n)

空间复杂度o(n)

提示:类似 求一个树的所有叶子,只不过加了一些限制条件


http://www.ppmy.cn/ops/137353.html

相关文章

网络药理学之薛定谔Schrödinge Maestro:6、分子对接(Glide、Ligand docking)和可视化

本人是win11,薛定谔版本是12.9。 官网:https://www.schrodinger.com/ 本篇文章的示例大分子蛋白PDB ID为4KNN,小分子配体的MOL ID为MOL004004。 本文部分图源来自知乎https://zhuanlan.zhihu.com/p/416698194,推荐为原作者贡献阅读…

计算机组成原理——数的定点表示和浮点表示

0.11111-2-40.9375的计算 1.1111-(1-2-4)-0.9375,1.1111中最前面的1是符号位 重要问题,因为计算机中存储的位数有限,所以数在计算机里是离散分布的。因为在某一区间中的数是无限的 2m-1相当于m个1表示的二进制数 -2的2m-1次方…

关于网络安全攻防知识

DNS 劫持 什么是DNS劫持? DNS劫持又叫域名劫持,(劫持了路由器或域名服务器等),篡改了域名的解析结果,使得指向该域名的IP指向IP,你想访问正经网站结果给你跳到一个不正经的网站,实现…

探索Python WebSocket新境界:picows库揭秘

文章目录 探索Python WebSocket新境界:picows库揭秘第一部分:背景介绍第二部分:picows库概述第三部分:安装picows库第四部分:简单库函数使用方法第五部分:场景应用第六部分:常见Bug及解决方案第…

GitLab|应用部署

创建docker-compose.yaml文件 输入docker-compose配置 version: 3.8 services:gitlab:image: gitlab/gitlab-ce:15.11.2-ce.0restart: alwayscontainer_name: gitlab-ceprivileged: truehostname: 192.168.44.235environment:TZ: Asia/ShanghaiGITLAB_OMNIBUS_CONFIG: |exter…

SpringBoot集成minio,并实现文件上传

SpringBoot集成minio 什么是minioSpringBoot集成minio1、引入minio依赖2、配置Minio相关参数3、在代码里读取自定义的minio配置4、在minio配置类里,注册ConfigurationProperties实现文件上传到minio1、利用SpringMVC实现接口的异常全局处理2、返回文件路径给前端3、返回文件流…

PyTorch基础学习03_数学运算自动微分

目录 一、数学运算 1、基本操作 2、三角函数 3、统计学函数 二、保存和加载 三、并行化 四、自动微分 1、相关概念 2、计算梯度 1.标量梯度计算 2.向量梯度计算 3.多标量梯度计算 4.多向量梯度计算 5.矩阵梯度计算 3、梯度上下文控制 1、梯度控制 2、梯度更新…

tcp、http、rpc的区别

TCP、HTTP 和 RPC 是网络通信中常见的协议和方法,各自有不同的用途和特性。以下是它们的主要区别: 1. TCP(传输控制协议) 类型: 传输层协议功能: TCP 是一个面向连接的协议,提供可靠的数据传输。确保数据包的顺序和完…