剑指offer-24.二叉树中和为某一值的路径
来源:互联网 发布:java rsa加密算法 编辑:程序博客网 时间:2024/06/05 06:45
题目:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
思路:判断节点值是否与给定值相等,相等对该路径进行回收,如果不相等,对左子树和右子树进行递归,注意,在对左子树和右子树进行递归时,第二个参数一定要用给定值减去上一个值。(PathFind(tree->left,sum - tree->val);)例如对左子树进行递归,第二个参数为sum - tree->val;非递归方法目前还没有想出来,想到了,思路清晰了再进行补充
/*struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right;TreeNode(int x) :val(x), left(NULL), right(NULL) {}};*/class Solution { vector<vector<int> >res; vector<int>temp; void PathFind(TreeNode* tree,int sum) { temp.push_back(tree->val); if (tree->val == sum && !tree->left && !tree->right)//从根节点到叶子节点 { res.push_back(temp); } else { if (tree->left) { PathFind(tree->left,sum - tree->val); } if (tree->right) { PathFind(tree->right,sum - tree->val); } } temp.pop_back();//如果不符合及时弹出,恢复环境 }public: vector<vector<int> > FindPath(TreeNode* root,int expectNumber) { if(root) PathFind(root,expectNumber); return res; }};
0 0
- 剑指offer:二叉树中和为某一值的路径
- 【剑指offer】二叉树中和为某一值的路径
- 剑指offer--二叉树中和为某一值的路径
- 《剑指offer》二叉树中和为某一值的路径
- 【剑指Offer】二叉树中和为某一值的路径
- 剑指Offer--二叉树中和为某一值的路径
- 剑指offer:二叉树中和为某一值的路径
- 剑指offer 二叉树中和为某一值的路径
- 剑指offer:二叉树中和为某一值的路径
- [剑指offer]二叉树中和为某一值的路径
- 《剑指offer》-二叉树中和为某一值的路径
- 剑指offer 二叉树中和为某一值的路径
- 【剑指offer】二叉树中和为某一值的路径
- 剑指offer|二叉树中和为某一值的路径
- 《剑指offer》二叉树中和为某一值的路径
- 剑指offer 二叉树中和为某一值的路径
- 剑指Offer:二叉树中和为某一值的路径
- 剑指offer-二叉树中和为某一值的路径
- 石子归并 51nod(区间dp)
- Keychain 讲解
- 搜索练习3 /poj.org/problem 3984 迷宫问题/bfs 回溯找路经
- 确保字符串的每个单词首字母都大写,其余部分小写。
- Failed to read artifact descriptorfor xxx:jar
- 剑指offer-24.二叉树中和为某一值的路径
- Linux静默安装Nginx
- java.lang.Exception: No tests found matching
- mongodb分片
- 详解kmalloc、vmalloc
- python-关于对象
- js获取可视化区域的宽和高以及滑动条距离顶部的距离
- 在线压缩图片
- Android bitmap图片处理