二叉树路径和(c#)

23 篇文章 0 订阅
给定一个二叉树和一个整数目标值,如果存在从根节点到叶子节点的路径,使得沿途节点值之和等于目标值,则返回真。否则,返回假。文章提供了递归解决方案的详细描述和示例。
摘要由CSDN通过智能技术生成

问题描述

给定一个二叉树的根和一个整数值,如果二叉树中有根节点到叶子节点的路径上节点值的和等于给定的整数值,则返回真,否则返回假。
叶子节点:没有孩子的节点。


示例

示例1

Input: root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22
Output: true
Explanation: The root-to-leaf path with the target sum is shown.

 示例2

 

Input: root = [1,2,3], targetSum = 5
Output: false
Explanation: There two root-to-leaf paths in the tree:
(1 —> 2): The sum is 3.
(1 —> 3): The sum is 4.
There is no root-to-leaf path with sum = 5.

 示例3

Input: root = [], targetSum = 0
Output: false
Explanation: Since the tree is empty, there are no root-to-leaf paths.


解决方案描述 

使用递归,判断当前节点是否为空节点,如果为空,则判断当前节点值是否等于指定值。递归判断左子节点,并将指定值设为当前指定值减掉当前节点值,递归判断右子节点,并将指定值设为当前指定值减掉当前节点值,左子节点和右子节点的返回值均为真,则返回真。

  • 判断当前节点是否为空,如果为空则返回假。
  • 判断当前节点是否是叶子节点,如果是则判断当前节点值是否等于指定值,如果等于指定值则返回真,否则返回假。
  • 递归判断左子节点,并将指定值设为当前指定值减掉当前节点值后的值。
  • 递归判断右子节点,并将指定值设为当前指定值减掉当前节点值后的值。
  • 左子节点的返回值或上右子节点的返回值为当前函数的返回值。

具体代码见下面的链接

二叉树路径和(c#)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值