剑指offer——JZ82 二叉树中和为某一值的路径(一) 解题思路与具体代码【C++】

一、题目描述与要求

二叉树中和为某一值的路径(一)_牛客题霸_牛客网 (nowcoder.com)

题目描述

给定一个二叉树root和一个值 sum ,判断是否有从根节点到叶子节点的节点值之和等于 sum 的路径。

1.该题路径定义为从树的根结点开始往下一直到叶子结点所经过的结点

2.叶子节点是指没有子节点的节点

3.路径只能从父节点到子节点,不能从子节点到父节点

4.总节点数目为n
例如:
给出如下的二叉树,sum=22,

返回true,因为存在一条路径 5→4→11→2的节点值之和为 22

数据范围:

1.树上的节点数满足 0≤n≤10000

2.每 个节点的值都满足 ∣val∣≤1000

要求:空间复杂度 O(n),时间复杂度O(n)

进阶:空间复杂度 O(树的高度),时间复杂度 O(n)

示例

示例1:

输入:{5,4,8,1,11,#,9,#,#,2,7},22

返回值:true

示例2:

输入:{1,2},0

返回值:false

示例3:

输入:{1,2},3

返回值:true

示例4:

输入:{},0

返回值:false


二、解题思路

根据题目描述,我们需要判断这个二叉树是否存在父节点到叶子结点的路径的和等于sum,很明显我们需要对这个二叉树进行遍历,且路径定义为从树的根结点开始往下一直到叶子结点所经过的结点。因而我们需要从根结点开始逐层往下寻找,并且判断是否存在路径能够使它们的和等于sum。

比起我们去定义一个变量来计算路径之和与sum比较,这样经常需要更新,容易搞混,所以我们不如直接在访问完每个结点需要进入到下一层的时候,直接将sum减去当前结点的值,这样一直到叶子结点,只要此时sum减去叶子结点的值等于0,那么就说明路径存在,即可返回true即可。

我们可以采用递归的思想,依次访问每个结点,当然首先要判断结点是否为空,空则直接返回false,然后判断当前结点是否是叶子结点,是的话则判断sum-当前结点的值是否等于0,都满足的话代表路径存在,返回true,不满足的话就继续访问当前结点的左右子节点继续进行判断,一直到遍历完整棵树,最后返回结果即可。


三、具体代码

class Solution {
public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param root TreeNode类 * @param sum int整型 * @return bool布尔型*/bool hasPathSum(TreeNode* root, int sum) {//空结点找不到路径if(root==nullptr)  return false;//当访问到叶子节点并且sum此时为0 则代表找到了路径if(root->left==nullptr&&root->right==nullptr&&sum-root->val==0)return true;//递归访问子节点 同时将sum-当前结点的值return hasPathSum(root->left,sum-root->val)||hasPathSum(root->right, sum-root->val);}
};

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

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

相关文章

ChatGPT是如何产生心智的?

一、前言 - ChatGPT真的产生心智了吗? 来自斯坦福大学的最新研究结论,一经发出就造成了学术圈的轰动,“原本认为是人类独有的心智理论(Theory of Mind,ToM),已经出现在ChatGPT背后的AI模型上”…

PY32F003F18之sleep模式

一、WFI和WFE WFI: wait for interrupt,是"等待中断"的意思; WFE: wait for event,是"等待事件"的意思; 1)执行HAL_PWR_DisableSleepOnExit(),则令SLEEPONEXIT位置0; 当SL…

网络相关的基础知识整理

一、历史 1.1 早期阿帕网特点⭐⭐⭐ 没有纠错功能不能互联不同类型的计算机和不同类型的操作系统 1. 2 TCP/IP协议 点击【此处】跳转🔗 TCP:用来检测网络传输中差错的传输控制协议IP:专门负责对不同网络进行互联的互联网协议&#xff08…

Video Caption / 视频字幕:数据集总结

目录 一、背景 二、介绍 2.1 MSR-VTT 2.2 MSVD 2.3 VATEX 三、参考文献 一、背景 Video Caption / 视频字幕:常用指标(BELU-4,ROUGE-L,METEOR,CIDEr,SPICE)和数据集总结-CSDN博客Video C…

满足你甜食需求的葡萄酒是怎样的?

也许这是不言而喻的,但我们认为,如果没有一杯完美的葡萄酒来补充你最喜爱的菜肴的复杂风味,一顿美食就不完整。无论您是享用美味的葡萄酒作为开胃菜,还是搭配主菜,我们相信我们最喜爱的饮料是一餐中任何部分的完美补充…

智慧空调插座:智控生活好伴侣,节能降耗好帮手

所谓“智能插座”,就是在普通插座上增加Wi-Fi模块,通过手机APP控制单个或整个插座的电源通断,并统计一段时间的用电量。 目前市面上所销售的智能插座,大多具备可连接Wi-Fi网路功能,如此一 来便不需要额外再购买定时控…

Arcgis日常天坑问题(1)——将Revit模型转为slpk数据卡住不前

这段时间碰到这么一个问题,revit模型在arcgis pro里导出slpk的时候,卡在98%一直不动,大约有两个小时。 首先想到的是revit模型过大,接近300M。然后各种减小模型测试,还是一样的问题,大概花了两天的时间&am…

软考对找工作有用吗?

软考是指软件技术专业资格考试,是由中国人力资源和社会保障部主管的一项国家级考试。软考的目标是评估和认证软件技术人员的专业能力,提高软件行业的整体素质和竞争力。那么,软考对找工作有用吗?本文将从以下几个方面进行分析。 首…

LabVIEW开发教学实验室自动化INL和DNL测试系统

LabVIEW开发教学实验室自动化INL和DNL测试系统 如今,几乎所有的测量仪器都是基于微处理器的设备。模拟输入量在进行数字处理之前被转换为数字量。对于参加电气和电子测量课程的学生来说,了解ADC以及如何欣赏其性能至关重要。ADC的不确定性可以根据其传输…

【Python】下载和安装

【Python】下载和安装 下载 进入 Python官网,下载最新版本,如下图所示: 如果需要下载其他版本,请下滑该页面,找到如下位置,选择需要的版本进行下载(以3.8.10为例): 点击…

天启科技联创郭志强:趟遍教育行业信数化沟坎,创业智能赛道重塑行业生态

郭志强 天启科技联合创始人 近20年互联网、企业信息化、数字化实施、管理及培训经验。对于集团型企业及初创企业、传统企业及互联网企业的信息化、数字化转型有自己独到的见解和实操经验。具备跨区域、集团化信息规划、解决方案、系统架构及企业流程搭建、优化和技术团队管理能…

智慧用电安全云监控系统

近年来,我国电气火灾频发,2017年至2019年,我国共之间发生发展电气控制火灾31.1万起,占全国进行火灾总量及伤亡风险损失的30%以上,2019年全年共接报火灾23.3万起,电气火灾11.1万,占52…