面试算法49:从根节点到叶节点的路径数字之和

题目

在一棵二叉树中所有节点都在0~9的范围之内,从根节点到叶节点的路径表示一个数字。求二叉树中所有路径表示的数字之和。例如,图8.4的二叉树有3条从根节点到叶节点的路径,它们分别表示数字395、391和302,这3个数字之和是1088。
在这里插入图片描述

分析

首先考虑如何计算路径表示的数字。顺着指向子节点的指针路径向下遍历二叉树,每到达一个节点,相当于在路径表示的数字末尾添加一位数字。例如,在最开始到达根节点时,它表示数字3。然后到达节点9,此时路径表示数字39(3×10+9=39)。然后向下到达节点5,此时路径表示数字395(39×10+5=395)。

这就是说,每当遍历到一个节点时都计算从根节点到当前节点的路径表示的数字。如果这个节点还有子节点,就把这个值传下去继续遍历它的子节点。先计算到当前节点为止的路径表示的数字,再计算到它的子节点的路径表示的数字,这实质上就是典型的二叉树前序遍历。

public class Test {public static void main(String[] args) {TreeNode node3 = new TreeNode(3);TreeNode node9 = new TreeNode(9);TreeNode node0 = new TreeNode(0);TreeNode node5 = new TreeNode(5);TreeNode node1 = new TreeNode(1);TreeNode node2 = new TreeNode(2);node3.left = node9;node3.right = node0;node9.left = node5;node9.right = node1;node0.right = node2;int result = sumNumbers(node3);System.out.println(result);}public static int sumNumbers(TreeNode root) {return dfs(root, 0);}private static int dfs(TreeNode root, int sum) {if (root == null) {return 0;}sum = sum * 10 + root.val;if (root.left == null && root.right == null) {return sum;}return dfs(root.left, sum) + dfs(root.right, sum);}
}

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

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

相关文章

万物摩尔定律:人工智能技术的快速迭代将使人类万劫不复?

第一次工业革命:蒸汽机时代; 第二次工业革命:电气化时代; 第三次工业革命:信息化时代; 第四次工业革命:智能化革命。这一场革命正在上演,是人工智能(AI)带…

LeetCode----42. 接雨水

题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height = [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝…

Linux常用操作及主流服务部署命令

目录 Linux 系统目录 一、常用操作命令 1、目录操作 2、文件内容操作(查看日志,更改配置文件) 3、压缩和解压缩 4、更改文件权限 二、各服务部署命令 1、增加虚拟内存 2、JDK 2.1 删除系统自带的openjdk 2.2 安装jdk 2.3 删除jd…

怎么开发小程序?微信小程序开发方式

小程序开发之所以受到欢迎,是因为相比于APP,小程序的开发成本更低。不需要下载和安装,用户可以直接在微信内使用,节省了开发和维护的成本。小程序的开发方式有很多种,常见的有:自己源码开发、模板编辑、购买…

开关电源老化试验和性能检测系统软件

开关电源自动测试系统由PC(工控机)、测试工装、可编程直流电源、数字示波器、可编程直流电子负载、继电器模块等部分组成,并通过RS232/LAN通讯总线、测试夹具以及其它线缆等进行连接,为系统组成结构。PC与可编程直流电源、数字示波器、可编程直流电子负载…

呼叫中心的重要考核指标

呼叫中心在运营过程中越来越精细化,在信息化管理的时代,呼叫中心系统是必不可少的,而呼叫中心的管理人员为了提升运营效率,通常会根据业务目标设置各种业务的考核指标,而我也根据OKCC在呼叫中心项目运营过程中的经验&a…

英语语法,时态总结,16种时态

文章目录 前言总体说明过去时一般过去时过去进行时过去完成时过去完成进行时 现在时一般现在时现在进行时现在完成时现在完成进行时 将来时一般将来时将来进行时将来完成时将来完成进行时 过去将来时一般过去将来时过去将来进行时过去将来完成时过去将来完成进行时 前言 学了这…

最全的操作系统原版镜像,镜像winxp、win7、8、10、11,win server2008、2012、2016、2019、2022各版本系统下载 址

1、 MSDN原版系统(我告诉你) [软件、镜像下载地址](https://www.imsdn.cn/)2、 HelloWindows.cn 精校 完整 极致 Windows系统下载仓储站 镜像、软件下载地址 3、系统库 镜像下载地址 4、 山己几子木 镜像下载地址

springboot和flask整合nacos,使用openfeign实现服务调用,使用gateway实现网关的搭建(附带jwt续约的实现)

环境准备: 插件版本jdk21springboot 3.0.11 springcloud 2022.0.4 springcloudalibaba 2022.0.0.0 nacos2.2.3(稳定版)python3.8 nacos部署(docker) 先创建目录,分别创建config,logs&#xf…

软件测试面试,一定要准备的7个高频面试题(附答案,建议收藏)

问题1:请自我介绍下? 核⼼要素:个⼈技能优势⼯作背景经验亮点参考回答: 第一种:基本信息离职理由 ⾯试官您好,我叫张三,来⾃番茄市,在软件测试⾏业有 3 年的⼯作经验。做过 Web/APP…

DL Homework 5

目录 习题4-1 对于一个神经元​编辑,并使用梯度下降优化参数w时,如果输入x恒大于0,其收敛速度会比零均值化的输入更慢。 习题4-5 如果限制一个神经网络的总神经元数量(不考虑输入层)为N1,输入层大小为​编辑,输出层大…

python项目部署代码汇总:目标检测类、人体姿态类

一、AI健身计数 1、图片视频检测 (cpu运行): 注:左上角为fps,左下角为次数统计。 1.哑铃弯举:12,14,16 详细环境安装教程:pyqt5AI健身CPU实时检测mediapipe 可视化界面…

Spring Boot Web MVC

文章目录 一、Spring Boot Web MVC 概念二、状态码三、其他注解四、响应操作 一、Spring Boot Web MVC 概念 Spring Web MVC 是⼀个 Web 框架,一开始就包含在Spring 框架里。 1. MVC 定义 软件⼯程中的⼀种软件架构设计模式,它把软件系统分为模型、视…

Linux高级命令(扩展)

一、find命令 1、find命令作用 在Linux操作系统中,find命令主要用于进行文件的搜索。 2、基本语法 # find 搜索路径 [选项 选项的值] ... 选项说明: -name :根据文件的名称搜索文件,支持*通配符 -type :f代表普通文…

IP地址管理系统phpipam部署

IP地址管理系统phpipam部署 一、IPAM管理系统简介二、IPAM安装部署教程2.1 环境准备 三、phpIPAM web配置3.1 初始化3.2 WEB配置使用 四、IPAM管理和使用4.1配置dns4.2 配置ip网段4.3 配置ip地址自动扫描 一、IPAM管理系统简介 phpipam是一个开源Web IP地址管理应用程序&#…

Easy-Laser激光测平仪维修易激光对中仪E920

Easy-Laser激光对中仪常见故障:触摸屏损坏(屏碎,不显示,黑屏,蓝屏,无背光等),对中仪电路板损坏,对中仪接收装置电路板,对中仪发射控制装置电路板等均可维修。…

迅镭激光董事长颜章健荣膺“2023年如皋市科技强企人物”!

10月28日,2023如皋科技人才洽谈会开幕式在如皋隆重举行。江苏省科学技术厅副厅长、党组成员蒋洪,江苏省商务厅副厅长、党组成员孙津,中共南通市委副书记、政法委书记沈雷,中共如皋市市委书记何益军,中共如皋市委副书记…

目标检测与图像识别分类的区别?

目标检测与图像识别分类的区别 目标检测和图像识别分类是计算机视觉领域中两个重要的任务,它们在处理图像数据时有一些区别。 目标检测是指在图像中定位和识别多个目标的过程。其主要目标是确定图像中每个目标的边界框位置以及对应的类别标签。目标检测任务通常涉…

avi怎么转mp4?

avi怎么转mp4?如今市面上涌现了各种多样的视频格式,其中AVI作为一种音频视频交错格式,虽然使用较少但相对常见。它的优点在于占用空间较小,但画面质量并不是很出色。然而,AVI格式也存在一个明显的缺点,即兼…

Java实现Hive UDF详细步骤 (Hive 3.x版本,IDEA开发)

这里写目录标题 前言1. 新建项目2.配置maven依赖3.编写代码4.打jar包5.上传服务器6.代码中引用 前言 老版本编写UDF时,需要继承 org.apache.hadoop.hive.ql.exec.UDF类,然后直接实现evaluate()方法即可。 由于公司hive版本比较高(3.x&#x…