【牛客刷题 - 算法】NC9 二叉树中和为某一值的路径 (一)
个人主页:清风莫追
系列专栏:牛客刷题——数据结构与算法推荐一款面试、刷题神器牛客网:👉点击开始刷题学习👈
@[toc]
1.题目描述
描述给定一个二叉树 root 和一个值 sum ,判断是否有从根节点到叶子节点的节点值之和等于 sum 的路径。
该题路径定义为从树的根结点开始往下一直到叶子结点所经过的结点
叶子节点是指没有子节点的节点
路径只能从父节点到子节点,不能从子节点到父节点
总节点数目为 n
例如:给出如下的二叉树,
返回 true,因为存在一条路径 的节点值之和为 22。
数据范围:1.树上的节点数满足 2.每个节点的值都满足要求:空间复杂度 ,时间复杂度进阶:空间复杂度 ,时间复杂度
2.算法设计思路
核心其实就是一个二叉树的遍历。可以采用回溯法,在遍历树的过程中,利用一个全局变量num
记录遍历到当前节点时路径上所有值的和。
当以当前结点为根的子二叉树中没有符合要求的叶子结点时,就向上回溯(从父结点到子结点时,num
的值增加了;因此返回时就减去相应的值。)
3.代码实现
注:这里并不是完整代码,而只是核心代码的模式
复制代码
当没有最后一行代码return false;
时,就会显示如下的编译错误,避坑(代码其实应该是没有问题的)。
4.运行结果
成功通过!
结束语:
今天的分享就到这里啦,快来加入刷题大军叭!👉点击开始刷题学习👈
感谢阅读
个人主页:清风莫追
CSDN话题挑战赛第2期参赛话题:学习笔记
版权声明: 本文为 InfoQ 作者【清风莫追】的原创文章。
原文链接:【http://xie.infoq.cn/article/18ed39803377e71e475dc1b19】。文章转载请联系作者。
评论