112. Path Sum (判断路径和是否等于某值)

 

 

Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.

For example:
Given the below binary tree and sum = 22,
              5
             / \
            4   8
           /   / \
          11  13  4
         /  \      \
        7    2      1

return true, as there exist a root-to-leaf path 5->4->11->2 which sum is 22.

 

 

 

 

复制代码
class Solution {
public:
    
    bool hasPathSum(TreeNode* root, int targetSum) {
        if(root == nullptr)  return false;

        if (root->left == nullptr && root->right == nullptr && targetSum == root->val) return true;
        
        return hasPathSum(root->left,targetSum-root->val) || hasPathSum(root->right,targetSum-root->val);
    }
};
复制代码

 

 

复制代码
 1 class Solution {
 2 public:
 3     bool res = false;
 4     void backtrack(TreeNode* root, int cursum, int targetSum) {
 5         if (root == nullptr) return;
 6         if(root->left == nullptr && root->right == nullptr) {
 7             // 需要加上叶子节点
 8             if (cursum + root->val == targetSum) {
 9                 res = true;
10                 return;
11             }
12         }
13         // 剪枝
14         if(!res) backtrack(root->left,cursum+root->val,targetSum);
15         if(!res) backtrack(root->right,cursum+root->val,targetSum);
16     }
17     
18     bool hasPathSum(TreeNode* root, int targetSum) {
19         if (root == nullptr) return res;
20         backtrack(root,0,targetSum);
21         return res;
22     }
23 };
复制代码

 

 

posted @   乐乐章  阅读(167)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core GC计划阶段(plan_phase)底层原理浅谈
· .NET开发智能桌面机器人:用.NET IoT库编写驱动控制两个屏幕
· 用纯.NET开发并制作一个智能桌面机器人:从.NET IoT入门开始
· 一个超经典 WinForm,WPF 卡死问题的终极反思
· ASP.NET Core - 日志记录系统(二)
阅读排行:
· 支付宝事故这事儿,凭什么又是程序员背锅?有没有可能是这样的...
· https证书一键自动续期,帮你解放90天限制
· 在线客服系统 QPS 突破 240/秒,连接数突破 4000,日请求数接近1000万次,.NET 多
· 推荐几个不错的 Linux 服务器管理工具
· C# 开发工具Visual Studio 介绍
历史上的今天:
2016-11-01 文本挖掘之特征选择【转】
点击右上角即可分享
微信分享提示