【leetcode热题】求根到叶子节点数字之和

  • 难度: 中等
  • 通过率: 40.6%
  • 题目链接:. - 力扣(LeetCode)

题目描述

给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。

例如,从根到叶子节点路径 1->2->3 代表数字 123

计算从根到叶子节点生成的所有数字之和。

说明: 叶子节点是指没有子节点的节点。

示例 1:

输入: [1,2,3]1/ \2   3
输出: 25
解释:
从根到叶子节点路径 1->2 代表数字 12.
从根到叶子节点路径 1->3 代表数字 13.
因此,数字总和 = 12 + 13 = 25.

示例 2:

输入: [4,9,0,5,1]4/ \9   0/ \
5   1
输出: 1026
解释:
从根到叶子节点路径 4->9->5 代表数字 495.
从根到叶子节点路径 4->9->1 代表数字 491.
从根到叶子节点路径 4->0 代表数字 40.
因此,数字总和 = 495 + 491 + 40 = 1026.

解法:

深度优先遍历。

class Solution:def sumNumbers(self, root: TreeNode) -> int:result = 0def dfs(node, num):nonlocal resultif not node:returnnum = num * 10 + node.valif (node.left is None) and (node.right is None):result += numreturndfs(node.left, num)dfs(node.right, num)dfs(root, 0)return result

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

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

相关文章

Linux包管理dpkg、apt和snap

dpkg、apt和snap都是Ubuntu系统中用于软件管理的工具,但它们在功能和使用上有一些区别。 dpkg: dpkg是Debian包管理系统的底层工具,也是apt和其他高级包管理工具的基础。主要功能是用于安装、卸载、配置和构建Debian软件包(.deb文件&#xff…

vue面试题:Computed 和 Watch 的区别?

Computed 和 Watch 的区别? 对于Computed:对于Watch:immediate:组件加载立即触发回调函数deep:深度监听,发现数据内部的变化,在复杂数据类型中使用,例如数组中的对象发生变化。需要注意的是&am…

USLE模型-LS因子的计算

目录 计算坡度计算填洼计算流向计算水流长度计算水平投影![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/75e015b2d6874ce9b6652f2b8730b90f.png)计算可变的坡度指数m计算坡长因子L计算坡度因子S计算LS因子参考视频 计算坡度 准备好30米分辨率的dem 计算填洼 计…

速看!深夜悄悄分享一个电力优化代码集合包!

代码集合包如下: 主从博弈的智能小区定价策略及电动汽车调度策略 碳交易机制下的综合能源优化调度 两阶段鲁棒优化算法的微网多电源容量配置 冷热电多能互补综合能源系统优化调度 考虑预测不确定性的综合能源调度优化 考虑柔性负荷的综合能源系统低碳经济优化调度 考…

MySQL深入——24

Join语句到底可不可用 join语句用于两个或多个表当中检索数据。 INNER JOIN或者JOIN 当两个表当中有匹配的值时,返回行 LEFT JOIN或者LEFT OUTER JOIN 返回所有左边的行,即使右表当中没有相匹配的行 RIGHT JOIN或者RIGHT OUTER JOIN 返回所有右边的…

整数的分离与合成

整数是由数字和数位组成的,比如327是一个三位数,它的数字是3、2、7,数位是个数、十位、百位。 经常有些题目考查将一个整数拆分成各个数字,以及将各个数字合成一个整数,下面分别就此讨论。 注:只考虑正整数&#xff…

C语言学生成绩信息管理系统【结构体+文本】

功能描述&#xff1a; 1、录入成绩 2、显示不及格学生信息 3、统计每档学生数量 4、总成绩统计 代码&#xff1a; #include<stdio.h>#define N 30//结构体&#xff1a;typedef struct STUDENT{char id[10];//学号char name[20];//姓名float score[3];//三门成绩,分别代…

Socket网络编程(四)——点对点传输场景方案

目录 场景如何去获取到TCP的IP和Port&#xff1f;UDP的搜索IP地址、端口号方案UDP搜索取消实现相关的流程&#xff1a;代码实现逻辑服务端实现客户端实现UDP搜索代码执行结果 TCP点对点传输实现代码实现步骤点对点传输测试结果 源码下载 场景 在一个局域网当中&#xff0c;不知…

生成式人工智能治理:入门的基本技巧

GenAI 以前所未有的速度调解并扰乱了“一切照旧”&#xff0c;同时带来了令人难以置信的力量&#xff0c;但也带来了不可否认的责任。当然&#xff0c;现代企业非常熟悉技术进步。然而&#xff0c;人工智能的到来&#xff08;和实施&#xff09;无疑引起了相当大的冲击&#xf…

C# 12 中的新增功能

本文内容 主构造函数集合表达式ref readonly 参数默认 Lambda 参数 显示另外 5 个 C# 12 包括以下新增功能。 可以使用最新的 Visual Studio 2022 版本或 .NET 8 SDK 尝试这些功能。 主构造函数 - 在 Visual Studio 2022 版本 17.6 预览版 2 中引入。 集合表达式 - 在 Visu…

ThreeJs同一个场景多个相机的显示

在threeJs开发数字孪生中&#xff0c;我们正常是需要使用一个相机&#xff0c;画面显示的内容也就是这个相机拍摄到的内容&#xff0c;但是是否可以添加多个相机&#xff0c;可以同时从不同角度观察模型呢&#xff0c;实际上是可以的&#xff0c;不过多个相机的拍摄到的画面肯定…

Linux uname命令教程:了解系统信息和配置(附实例详解和注意事项)

Linux uname命令介绍 uname&#xff08;Unix Name&#xff09;命令用于显示系统信息&#xff0c;包括内核名称、网络节点名称、操作系统名称、版本号、硬件名称和处理器类型。它是一个基本的系统管理工具&#xff0c;通常用于识别系统配置。 Linux uname命令适用的Linux版本 …

Linux服务:Nginx反向代理与负载均衡

一、Nginx反向代理 1、什么是反向代理&#xff1f; 代理分为两类&#xff0c;正向代理和反向代理。 ①正向代理&#xff1a;帮助用户访问服务器&#xff0c;缓存服务器内容。 ②反向代理&#xff1a;代理服务器处理用户的请求&#xff0c;决定转发请求给谁处理负载均衡的作…

Go 与 Rust:导航编程语言景观

在当今构建软件时&#xff0c;开发者在编程语言上有着丰富的选择。两种脱颖而出的语言是 Go 和 Rust - 都很强大但却截然不同。本文将从各种因素比较这两种语言&#xff0c;以帮助您确定哪种更适合您的需求。 我们将权衡它们在并发、安全性、速度、互操作性等方面的方法。我们将…

Ubuntu篇——crontab修改编辑器

输入命令: crontab -e 如果你的系统是第一次使用crontab服务&#xff0c;会首先让你选择一个编辑器 如果已经选择过编辑器&#xff0c;后续想要修改默认编辑器&#xff0c;可以输入sudo select-editor进行修改。

【GPU驱动开发】-GPU架构简介

前言 不必害怕未知&#xff0c;无需恐惧犯错&#xff0c;做一个Creator&#xff01; GPU&#xff08;Graphics Processing Unit&#xff0c;图形处理单元&#xff09;是一种专门用于处理图形和并行计算的处理器。GPU系统架构通常包括硬件和软件层面的组件。 一、总体流程 应…

Node.js基础---Express中间件

1. 概念 1.什么是中间件 中间件(Middleware)&#xff0c;特指业务流程的中间处理环节 2. Express 中间件的调用流程 当一个请求到达 Express 的服务器后&#xff0c;可以连续调用多个中间件&#xff0c;从而对这次请求进行预处理 3. Express 中间件格式 Express 的中间件&…

每周一算法:双端队列广搜

题目链接 电路维修 题目描述 达达是来自异世界的魔女&#xff0c;她在漫无目的地四处漂流的时候&#xff0c;遇到了善良的少女翰翰&#xff0c;从而被收留在地球上。翰翰的家里有一辆飞行车。有一天飞行车的电路板突然出现了故障&#xff0c;导致无法启动。 电路板的整体结…

Java实战:SpringBoot集成ZXing实现二维码生成与解析

一、引言 在信息化社会&#xff0c;二维码已经深入到生活的各个角落&#xff0c;无论是支付、营销、信息传递&#xff0c;甚至防伪溯源&#xff0c;二维码都发挥了至关重要的作用。作为Java开发者&#xff0c;我们如何在SpringBoot项目中便捷地实现二维码的生成与解析呢&#…

4、Redis-Set【常用】

目录 一、Redis-Set特点 二、常用命令与交并差 三、Redis中Set类型应用场景 一、Redis-Set特点 1、无序&#xff1a;添加的是A,B,C&#xff1b;取出的可能是B,A,C 2、唯一&#xff1a;不允许元素重复 二、常用命令与交并差 常用命令 格式含义例子sadd key members[...]往k…