LeetCode|1302. Deepest Leaves Sum

.

题目

Given the root of a binary tree, return the sum of values of its deepest leaves.

Example 1:

  • Input: root = [1,2,3,4,5,null,6,7,null,null,null,null,8]
  • Output: 15

Example 2:

  • Input: root = [6,7,8,2,7,1,3,9,null,1,4,null,null,null,5]
  • Output: 19

Constraints:

  • The number of nodes in the tree is in the range [1, 104].
  • 1 <= Node.val <= 100

.

思路

这道题既可以用DFS也可以用BFS来解。
出于想练习BFS,这题我用了广度优先的思路来做。

BFS的思路设计:

  • 首先将二叉树的根节点root存入队列中。
  • 保存每一层的子节点到队列queue中。
  • 每一层遍历结束后,判断是否还有下一层节点,如果没有,则返回求和值。
  • 如果还有下一层,则开始迭代下一层节点。

.

代码

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def deepestLeavesSum(self, root: Optional[TreeNode]) -> int:from collections import dequecur_queue = deque([root])next_queue = deque()sum = 0while cur_queue:node = cur_queue.popleft()sum = sum + node.valif node.left:next_queue.append(node.left)if node.right:next_queue.append(node.right)if len(cur_queue) == 0:if len(next_queue) == 0:breaksum = 0cur_queue = next_queue.copy()next_queue.clear()return sum

.

后记

一次AC ^ __________________________________ ^ 加油~

.

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

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

相关文章

在Linux上的Java项目导出PDF乱码问题

在Linux上的Java项目导出PDF乱码问题 场景&#xff1a;一个Java项目导出PDF&#xff0c;在我本地导出是没有问题&#xff0c;但是部署上Linux上后&#xff0c;导出就出现了乱码了。 处理方案 我这里使用的处理方案是在Linux服务器上安装一些PDF需要使用的字体 1.把字体上传到…

JavaScript第十一讲:DOM编程“事件”练习题

前言 上一节有本部分的内容讲解&#xff0c;有需要的码客们可以看看 练习题描述&#xff1a; 编写一个HTML表单&#xff0c;用户可以在其中输入一个账号。当用户点击“检查账号”按钮时&#xff0c;使用JavaScript来验证该账号是否存在于一个预定义的账号列表中。如果存在&am…

ubuntu 22.04 整机灾备方案

在Ubuntu 22.04上进行每日整机灾备的详细步骤包括配置自动化备份脚本、设置定时任务、并将备份数据存储到远程位置。以下是完整的步骤&#xff1a; 1. 安装必要的软件 1.1 更新操作系统 确保操作系统和所有软件包是最新的&#xff1a; sudo apt update sudo apt upgrade -y…

Apache POI(使用Java读写Excel表格数据)

1.Apache POI简介 Apache POI是一个开源的Java库&#xff0c;用于操作Microsoft Office格式的文件。它支持各种Office文档的读写功能&#xff0c;包括Word文档、Excel电子表格、PowerPoint演示文稿、Outlook电子邮件等。Apache POI提供了一组API&#xff0c;使得Java开发者能够…

course-nlp——8-translation-transformer

本文参考自https://github.com/fastai/course-nlp。 注意力机制和 Transformer Nvidia AI 研究员 Chip Huyen 写了一篇很棒的文章《Top 8 trends from ICLR 2019》&#xff0c;其中的趋势之一是 RNN 正在失去研究人员的青睐。 这是有原因的&#xff0c;RNN 可能很麻烦&#…

【Qt】Qt QTreeWidget隐藏列名称(横向表头)

1. 效果 未隐藏 隐藏 2. 方法 方法1 ui->treeWidget->header()->hide();方法2 ui->treeWidget->header()->setVisible(false);

Go语言升级1.22.0版本VSCode启动调试报 Version of Go is too old for this version of Delve

因为项目中调用了其它同事的服务&#xff0c;该服务同事的Go环境是1.22.0&#xff0c;我本地go环境是Go1.20.6&#xff0c;不得已也升级了go的版本到1.22.0&#xff0c;其实升级很简单&#xff0c;只需要去go官网下载windows环境的zip包&#xff0c;把原来配置的环境变量GOROOT…

计算机科学(学习笔记三)

内容来源&#xff1a;计算机科学 指令和程序 指令&#xff1a;指示计算机要做什么的代码&#xff0c;多条指令共同组成程序。 计算机指令长度 由于早期计算机每个字只有8位&#xff0c;指令只占4位&#xff0c;意味着只能有16个指令&#xff0c;这远远不够。 现代计算机有两…

[个人总结]-java常用方法

1.获取项目根路径 user.dir是一个系统属性&#xff0c;表示用户当前的工作目录&#xff0c;大多数情况下&#xff0c;用户的当前工作目录就是java项目的根目录&#xff08;src文件的同级路径&#xff09; System.getProperty("user.dir") 结果&#xff1a;D:\code…

C++实现,简单的命令行交互框架

目录 背景 背景 在实际开发中&#xff0c;经常需要有对端测试程序&#xff0c;配合自己的程序&#xff0c;验证功能、逻辑等。面对繁杂、多变的需求&#xff0c;如果对端程序设计得不够灵活&#xff0c;则无法提升工作效率&#xff0c;如果能够与对端程序交互&#xff0c;通过…

嵌入式系统错误处理与日志记录

在嵌入式系统中&#xff0c;错误处理和日志记录是确保系统稳定性和可维护性的关键组成部分。有效的错误处理策略可以减少系统故障&#xff0c;而详尽的日志记录可以帮助开发者快速定位问题原因。本文将探讨嵌入式系统中的错误处理机制和日志记录策略&#xff0c;并提供相应的代…

Spring Cloud 微服务集成Sentinel实现服务熔断降级

文章目录 一、前言二、技术思路及方案2.1 实现思路2.2 实现方案2.2.1 nacos动态数据源实现类关系图 三、功能实现3.1 快速集成方案3.1.1 引入依赖3.1.2 服务端熔断降级3.1.3 feign调用降级 四、扩展4.1 SPI机制4.2 自定义Slot实现4.3 基于 Sentinel 实现 Feign 全局异常兜底4.3…

ubuntu, esp-idf, arduino

1&#xff0c; 把 esp-idf 文件夹拷贝到 ubuntu&#xff0c; 不是拷贝 zip。 这样做是为了在 ubuntu 里能检测到 git 2&#xff0c; 把 esp-idf 里的 hello-world 拷贝出来 3&#xff0c; 在 hello-world 里建立文件夹 components, 把 arduino 文件夹拷贝进去 esp-idf 和 ar…

Html5如何播放hls格式的视频

目录 一、什么情况下需要播放 二、hls的原理 1、 切片 2、编码 3、分发 4、M3U8文件 5、客户端请求 6、动态码率调整 7、缓存 8、实时性 三、方法一&#xff1a;使用hls.js播放 四、方法二&#xff1a;使用video.js播放 一、什么情况下需要播放 当前端需要嵌入设备视…

[数组] 子数组最大平均数

给你一个由 n 个元素组成的整数数组 nums 和一个整数 k 。 请你找出平均数最大且 长度为 k 的连续子数组&#xff0c;并输出该最大平均数。 任何误差小于 10-5 的答案都将被视为正确答案。 示例 1&#xff1a; 输入&#xff1a;nums [1,12,-5,-6,50,3], k 4 输出&#xff…

操作系统教材第6版——个人笔记5

3.2 单连续分区存储管理 3.2.1 单连续分区存储管理 单连续分区存储管理 每个进程占用一个物理上完全连续的存储空间(区域) 单用户连续分区存储管理固定分区存储管理可变分区存储管理 单用户连续分区存储管理 主存区域划分为系统区与用户区设置一个栅栏寄存器界分两个区域…

每日题库:Huawe数通HCIA——13

所有资料均来源自网络&#xff0c;但个人亲测有效&#xff0c;特来分享&#xff0c;希望各位能拿到好成绩&#xff01; PS&#xff1a;别忘了一件三连哈&#xff01; 今日题库&#xff1a; 186. 下列协议中属于动态IGP路由协议的是&#xff1f;-单选 A.stA.tiC. B.OSPF c…

使用Django Channels和WebSocket构建聊天应用

一、引言 WebSocket提供了一种在客户端和服务器之间进行实时双向通信的方式。结合Django Channels&#xff0c;我们可以轻松地在Django项目中实现WebSocket功能。本文将通过一个简单的聊天应用示例&#xff0c;展示如何使用Django Channels和WebSocket。 二、环境搭建 项目的…

Nacos的下载使用

下载 本地Java8Maven环境 下载地址 https://github.com/alibaba/nacos/releases使用 解压安装包&#xff0c;直接运行bin目录下的startup.cmd 账号密码都是nacos

maven 本地打包

文章目录 1. 简介Maven和POM的基本概念本地打包的意义和场景 2. Maven POM 文件结构POM 文件的基本结构重要的POM元素介绍 3. Maven 本地打包的关键配置spring-boot-maven-pluginmaven-surefire-plugin的作用和配置如何配置和使用Maven Surefire插件skip 页签 maven-compiler-p…