首页 > 代码库 > 剑指offer之【二叉树中和为某一值的路径】
剑指offer之【二叉树中和为某一值的路径】
题目:
二叉树中和为某一值的路径
链接:
https://www.nowcoder.com/practice/b736e784e3e34731af99065031301bca?tpId=13&tqId=11177&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
题目描述:
输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
思路:
进行扫描,扫描到叶子节点后,看是否符合和为目标值的要求,如符合加入结果中,如不符合继续扫描。
代码:
1 /* 2 struct TreeNode { 3 int val; 4 struct TreeNode *left; 5 struct TreeNode *right; 6 TreeNode(int x) : 7 val(x), left(NULL), right(NULL) { 8 } 9 };*/ 10 class Solution{ 11 public: 12 vector<vector<int>> FindPath (TreeNode *root,int expectNumber){ 13 if(root == nullptr || expectNumber < 0) 14 return res; 15 sumpath(root,expectNumber); 16 return res; 17 } 18 void sumpath(TreeNode *root ,int expectNumber){ 19 if(root ==nullptr) 20 return ; 21 path.push_back(root->val); 22 expectNumber -= root->val; 23 if(root->left == nullptr && root ->right == nullptr && expectNumber == 0){ 24 res.push_back(path); 25 } 26 sumpath(root->left,expectNumber); 27 sumpath(root->right,expectNumber); 28 path.pop_back(); 29 } 30 private: 31 vector<vector<int>> res; 32 vector<int> path; 33 };
剑指offer之【二叉树中和为某一值的路径】
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。