二叉树中和为某一值的路径
来源:互联网 发布:nba2k16奥尼尔捏脸数据 编辑:程序博客网 时间:2024/05/21 11:30
题目描述
输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
算法:
前序遍历访问某一节点时,将值累加。
1、如果该结点为叶节点并且累加和等于target输出结果
2、如果该结点为叶节点但累加和不等于target则不输出结果
3、如果该结点非叶节点则继续遍历
PS:需要注意的是处理完本节点后,都该将PATH和SUM减去结点值。
class Solution {public: vector<vector<int>> PathResult; vector<vector<int> > FindPath(TreeNode* root,int expectNumber) { if(root == NULL) return PathResult; vector<int>path; int current_sum = 0; helper(root,expectNumber,path,current_sum); return PathResult; } void helper(TreeNode* root,int expectNumber,vector<int> & path,int ¤t_sum){ current_sum += root->val; path.push_back(root->val); //到达叶节点 if(root->left == NULL && root->right == NULL){ if(current_sum == expectNumber) PathResult.push_back(path); } //非叶节点继续前序遍历 else{ if(root->left != NULL) helper(root->left,expectNumber,path,current_sum); if(root->right != NULL) helper(root->right,expectNumber,path,current_sum); } path.pop_back(); current_sum -= root->val; }};
0 0
- 【树】二叉树中和为某一值的路径
- 【树6】二叉树中和为某一值的路径
- 题目11:二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- 二叉树中和为某一值的所有路径
- 题目1368:二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- 1368:二叉树中和为某一值的路径 @jobdu
- 二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- Q25:二叉树中和为某一值的路径
- 剑指offer:二叉树中和为某一值的路径
- 二叉树中和为某一值的路径(剑指offer25)
- Ubuntu无法登录的bug解决方案
- JSP中的路径问题
- 详解C语言可变参数va_list和vsnprintf及printf实现
- PHP-开篇
- 操作符的秘密
- 二叉树中和为某一值的路径
- Python实现简单的ftp与sftp日志上传功能
- hadoop2.6.4+Ubuntu14.04的单机模式和伪分布模式环境搭建
- hdu5389(dp+数学)
- 从网络接口获取json数据不完全
- Velocity 指令的转义
- DEDE一些必要的修改,以提高安全性
- C# 连接SQL Server数据库的几种方式--server+data source等方式
- MyBatis和Hibernate