剑指offer:二叉树中和为某一值的路径
2015-11-18 22:51
495 查看
题目描述:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点。
题目描述:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点。
/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } }; TreeNode * creat() { string x; cin>>x; int i, num = 0; if(x.size() > 1) { for(i = 0; i < x.size(); i++) num = num * 10 + x[i] - '0'; } else { if(x[0] == '#') return NULL; else num = x[0] - '0'; } TreeNode * res = new TreeNode(num); res->left = creat(); res->right = creat(); return res; }*/
class Solution { public: vector<vector<int> > find(TreeNode* root, int num, vector<int> tmp) { vector<vector<int> > res1; vector<vector<int> > res2; if(!root) { if(!num) { res1.push_back(tmp); } return res1; } tmp.push_back(root->val); if(!root->left && !root->right) res1 = find(root->left, num - root->val, tmp); else { res1 = find(root->left, num - root->val, tmp); res2 = find(root->right, num - root->val, tmp); } tmp.pop_back(); res1.insert(res1.end(), res2.begin(), res2.end()); //vector<vector<int> > :: iterator it; //sort(res1.begin(), res1.end()); //it = unique(res1.begin(), res1.end()); //res1.erase(it, res1.end()); return res1; } vector<vector<int> > FindPath(TreeNode* root,int expectNumber) { vector<vector<int> > res; vector<int> tmp; if(!root) return res; else return find(root, expectNumber, tmp); } };
相关文章推荐
- ReactiveCocoa基础知识内容2
- Jquery autocomplete 注意的一点破事
- mybatis 处理数组类型及使用Json格式保存数据 JsonTypeHandler and ArrayTypeHandler
- pgbouncer+pg(fdw)+pg(datanode)分表方案
- JSTL中var和target 标签的用法
- AngularJs angular.Module模块接口配置
- AngularJs搭建项目
- 网站如何做到完全不需要使用jQuery
- JavaScript DOM编程艺术—表格的奇数行在点击时实现斑马线效果
- AngularJs $rootScope.Scope 作用域操作
- javascript 实现 对XML文件 2级/3级联动操作
- js――Bootstrap (1)
- JS打乱数组最高效的方法
- JavaScript基本数据类型和运算
- CSS3画图2
- javascript高级程序设计(三)offsetLeft ,offsetTop,offserHeight,offsetWidth,clientHeight,clientWidth
- ArcGIS API for javascript开发笔记(六)——REST详解及如何使用REST API调用GP服务
- ArcGIS API for javascript开发笔记(六)——REST详解及如何使用REST API调用GP服务
- [LeetCode][JavaScript]Additive Number
- JavaScript中__proto__与prototype的关系