zoukankan      html  css  js  c++  java
  • LeetCode : Path Sum III

    Find the number of paths that sum to a given value.

    The path does not need to start or end at the root or a leaf, but it must go downwards (traveling only from parent nodes to child nodes).

    The tree has no more than 1,000 nodes and the values are in the range -1,000,000 to 1,000,000.

    Example:

    root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8

      10
     /  
    5   -3
    

    /
    3 2 11
    /
    3 -2 1

    Return 3. The paths that sum to 8 are:

    1. 5 -> 3
    2. 5 -> 2 -> 1
    3. -3 -> 11
    /**
     * Definition for a binary tree node.
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        int pathSum(TreeNode* root, int sum) {
            if(root==NULL)
               return 0;
             return dfs(root,sum)+pathSum(root->left,sum)+pathSum(root->right,sum);
        }
        int dfs(TreeNode *root,int sum)
        {
            int res = 0;
            if(root==NULL)
               return res;
            if(sum==root->val)
                res++;
            res+=dfs(root->left,sum-root->val);
            res+=dfs(root->right,sum-root->val);
            return res;
        }
    };
  • 相关阅读:
    PHP安装linux
    nginx 安装
    Redis安装
    linux启动http服务
    收藏的有用的网页
    laravel框架部署后有用命令
    .net 报错access to the path c: empimagefilesmsc_cntr_0.txt is denied
    oracle 触发器
    学习Auxre记录
    mysql数据库索引
  • 原文地址:https://www.cnblogs.com/chankeh/p/6850092.html
Copyright © 2011-2022 走看看