437. Path Sum III
来源:互联网 发布:java内部类ppt 编辑:程序博客网 时间:2024/04/28 19:15
437. Path Sum III
You are given a binary tree in which each node contains an integer value.
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 1Return 3. The paths that sum to 8 are:1. 5 -> 32. 5 -> 2 -> 13. -3 -> 11
思路:dfs函数,从当前节点依次往下遍历,如果达到目标值,cnt++。dfs2函数:每个节点都要求得该节点的cnt数,最后所有节点的cnt的和就是最后的结果。
/** * 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 { void dfs(TreeNode* root, int sum, int &cnt) { if(!root) return; if(root->val==sum) cnt++; TreeNode* l=root->left,*r=root->right; dfs(l,sum-root->val,cnt); dfs(r,sum-root->val,cnt); } void dfs2(TreeNode* root,int &sum,vector<int> & ans,int&cnt) { if(!root) return; cnt=0; dfs(root,sum,cnt); ans.push_back(cnt); TreeNode* l=root->left,*r=root->right; dfs2(l,sum,ans,cnt); dfs2(r,sum,ans,cnt); }public: int pathSum(TreeNode* root, int sum) { vector<int> ans;int s=0,cnt=0; dfs2(root,sum,ans,cnt); for(int i:ans) s+=i; return s; }};
0 0
- 437. Path Sum III
- 437. Path Sum III
- 437. Path Sum III
- 437. Path Sum III
- 437. Path Sum III
- 437. Path Sum III
- 437. Path Sum III
- 437. Path Sum III
- 437. Path Sum III
- 437. Path Sum III*
- 437. Path Sum III
- 437. Path Sum III
- 437. Path Sum III
- 437. Path Sum III
- 437. Path Sum III
- 437. Path Sum III
- 437. Path Sum III
- 437. Path Sum III
- 控制redo日志的归档速度
- shell脚本学习笔记(一)—— shell基础及sed
- 数据及编码问题
- 《CANOpen》 学习笔记5
- 增加java基础——hashSet中存放对象的比较规则
- 437. Path Sum III
- 把自己常用的LATEX公式记录下来,以后就不用每次再搜了
- 通俗易懂JSONP讲解
- Android 性能优化 概念介绍
- E - Repository (字典树)
- 冒泡排序原理
- ListView中的观察者模式
- lightoj1085 - All Possible Increasing Subsequences(树状数组)
- 《CANOpen》 学习笔记3