二叉树中和为某一值的路径
2017-06-04 16:54
190 查看
输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
解题思路:由于要求的是直到叶节点的一条路径,所以要到最后一个节点才算是找到了这条路径。遍历二叉树,采用递归的方法,将满足条件的路径压入一维数组当中,注意当找到满足条件的路径时,先将数组压入二维数组,然后将一维数组中的每个元数弹出,以存放新的路径。
解题思路:由于要求的是直到叶节点的一条路径,所以要到最后一个节点才算是找到了这条路径。遍历二叉树,采用递归的方法,将满足条件的路径压入一维数组当中,注意当找到满足条件的路径时,先将数组压入二维数组,然后将一维数组中的每个元数弹出,以存放新的路径。
vector<vector<int> > res; vector<int> tmp; vector<vector<int> > FindPath(TreeNode* root, int expectNumber) { if (root == NULL || expectNumber <= 0) return res; findpath(root, expectNumber); return res; } void findpath(TreeNode* root, int expectNumber) { tmp.push_back(root->val); if (root->val == expectNumber&&!root->left&&!root->right)//知道最后的叶节点才算成功 { res.push_back(tmp); } else { if (root->left) findpath(root->left, expectNumber - root->val); if (root->right) findpath(root->right, expectNumber - root->val); } tmp.pop_back(); }
相关文章推荐
- 二叉树打印和为某一值的路径
- 寻找二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- C++实现查找二叉树中和为某一值的所有路径的示例
- 剑指Offer——(24)二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- 剑指offer—二叉树中和为某一值的路径
- 剑指Offer——二叉树中和为某一值的路径
- [剑指offer][面试题25]二叉树中和为某一值得路径
- 二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- [置顶] 剑指offer:第25题二叉树和为某一值得路径
- 二叉树中找出和为某一值的所有路径
- (C++)剑指offer-24:二叉树中和为某一值的路径(举例让抽象具体化)
- 打印二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- 【剑指offer】题25:二叉树路径和为某一值
- 二叉树创建、遍历(递归和非递归)、深度及求取二叉树中和为某一值的所有路径
- 25 二叉树中和为某一值的路径
- 二叉树中和为某一值的路径