力扣112 二叉树路径总和

 

 

 题目理解起来很简单的一道题 数中如果有一道走到底的路径的和等于目标数就返回true 否则我们返回false

在树的题目下 毫无疑问我们会第一时间想到递归解决

但在这道题中我们是比较难的记住一个sum值 因为在每一次的递归过程中我们都会重新创造一个新的临时变量 

然后我们就不得不提这道题解题思路的精妙之处了 我们可以只判断叶子节点是否等于targetsum减前面的节点的val值 这样我们只用判断最后一个叶子节点的值就可以了 而不用大费周章的计算总和了(虽然也是变向的计算了sum的值)

所以我们就可以写出以下的代码了

bool 函数名(树的指针类型 root)

{
        if(root==nullptr)return false;(因为在我们主体的判断中并不会判断到叶子节点之后的节点,所以这种情况只有一个 就是这个树完全都是空的时候 自然而然我们会返回false)

        if(root->left==nullptr&&root->right==nullptr)return root->val==targetsum;

        (因为叶子节点的左右子树都是nullptr所以进行判断,在前面我们会多次进行递归减去每一次root->val )

        return 函数名(数的指针类型 root->left,targer-root->val)

                ||函数名(树的指针类型root->right,targetsum-root->val);

 

game over!

2023-04-06 23.27

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值