113. Path Sum II
来源:互联网 发布:淘宝话费充值店铺介绍 编辑:程序博客网 时间:2024/06/02 06:23
题目
Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum.
For example:Given the below binary tree and
sum = 22
,5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1
return
[ [5,4,11,2], [5,8,4,5]]
翻译
给定一个二叉树和一个和,找到所有根到叶的路径,其中每个路径的和等于给定的和。
分析
题目要求求出所有路径结果。在求出左子树满足结果时,不能return,而是继续求右子树。
每到一个叶子节点判断是否满足结果,如果满足添加路径集合paths中,如果不能满足结果,把该节点从路径path中删除。
/** * 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: vector<vector<int>> ret; void buildPath(TreeNode* root,int sum,vector<int> &path,vector<vector<int>> &paths){ if(root==NULL) return; path.push_back(root->val); int cur = sum - root->val; if(!(root->left)&&!(root->right)&&root->val==sum) paths.push_back(path); if(root->left){ buildPath(root->left,cur,path,paths); path.pop_back(); } if(root->right){ buildPath(root->right,cur,path,paths); path.pop_back(); } } vector<vector<int>> pathSum(TreeNode* root, int sum) { vector<int> path; vector<vector<int>> paths; if(root==NULL) return paths; buildPath(root,sum,path,paths); return paths; }};
0 0
- 113. Path Sum II
- 113. Path Sum II
- 113. Path Sum II
- 113. Path Sum II
- 113. Path Sum II
- 113. Path Sum II
- 113. Path Sum II
- 113. Path Sum II
- 113. Path Sum II
- 113. Path Sum II
- 113. Path Sum II
- 113. Path Sum II
- 113. Path Sum II
- 113. Path Sum II
- 113. Path Sum II
- 113. Path Sum II
- 113. Path Sum II
- 113. Path Sum II
- Google、亚马逊、微软 、阿里巴巴开源软件一览
- 16山东省赛A题
- 【英语】-add
- BIOS下启动Linux的过程
- VIM插件YouCompleteMe安装与配置
- 113. Path Sum II
- VMware ubuntu 安装JDK ultraiso
- C++sort函数
- 日记2016.4.27
- 俄罗斯方块Demo
- 363. Max Sum of Rectangle No Larger Than K
- FastDFS简介及搭建
- CCF-CSP-2015-3-2 数字排序
- hdu4815- Little Tiger vs. Deep Monkey-概率dp或者背包计数