博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二叉树中是否存在节点和为指定值的路径 NC9
阅读量:4129 次
发布时间:2019-05-25

本文共 521 字,大约阅读时间需要 1 分钟。

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

例如:
给出如下的二叉树,sum=22
返回true,因为存在一条路径 5→4→11→2 的节点值之和为 22。

思路

分成三种情况,
(1)节点不存在,返回false
(2)节点只有一个的时候,判定是否左子和右子均为空,且sum值等于该节点值
(3)递归的具体操作,递归左子和右子,同时更新sum的值,且结果为或的关系

var hasPathSum = function (root, sum) {    if (root === null)  // 根节点为空        return false;    // 只有叶节点的情况    if (root.left === null && root.right === null)        return root.val === sum;    // 总和减去当前值,并递归    sum = sum - root.val    return hasPathSum(root.left, sum) || hasPathSum(root.right, sum);};

 

转载地址:http://anuvi.baihongyu.com/

你可能感兴趣的文章
shell编程----目录操作(文件夹)
查看>>
机器学习-----K近邻算法
查看>>
HBASE安装和简单测试
查看>>
关于程序员的59条搞笑但却真实无比的编程语录
查看>>
搞笑--一篇有趣的文章编译自一篇西班牙博客。有一位美丽的公主,被关押在一个城堡中最高的塔上,一条凶恶的巨龙看守着她,需要有一位勇士营救她…
查看>>
非常不错 Hadoop 的HDFS (Hadoop集群(第8期)_HDFS初探之旅)
查看>>
Tomcat启动错误,端口占用
查看>>
laravel 修改api返回默认的异常处理
查看>>
高德坐标转换百度坐标 javascript
查看>>
tp5封装通用的修改某列值
查看>>
laravel控制器与模型名称不统一
查看>>
vue登录拦截
查看>>
npm配置淘宝镜像仓库以及electron镜像
查看>>
linux设置开机自启动脚本的最佳方式
查看>>
VUE SPA 单页面应用 微信oauth网页授权
查看>>
phpstorm 集成 xdebug 进行调试
查看>>
npm和node升级的正确方式
查看>>
laravel事务
查看>>
springcloud 连续请求 500
查看>>
vue复用新增和编辑表单
查看>>