失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 剑指offer:二叉树中和为某一值的路径

剑指offer:二叉树中和为某一值的路径

时间:2022-07-04 10:41:01

相关推荐

剑指offer:二叉树中和为某一值的路径

题目描述:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。

分析:路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。

用递归的思想去把和分解

代码实现:

#include <iostream>#include <vector>using namespace std;typedef struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right;TreeNode(int x) :val(x), left(NULL), right(NULL) {}}Node;class Solution {public:vector<vector<int> > buffer;vector<int> tmp;vector<vector<int> > FindPath(TreeNode* root,int expectNumber) {if(root==NULL)return buffer;tmp.push_back(root->val);if((expectNumber-root->val)==0 && root->left==NULL && root->right==NULL){buffer.push_back(tmp);}FindPath(root->left,expectNumber-root->val);FindPath(root->right,expectNumber-root->val);if(tmp.size()!=0)tmp.pop_back();return buffer;}};int main(){Node *tmp ;Node* root = new Node(10);tmp = new Node(5);root->left = tmp ;tmp = new Node(12);root->right = tmp;tmp = new Node(4);root->left->left = tmp;tmp = new Node(7);root->left->right = tmp;vector<vector<int>> ret;Solution s;ret = s.FindPath(root,22); return 0;}

如果觉得《剑指offer:二叉树中和为某一值的路径》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。