剑指offer题解C++【24】二叉树中和为某一值的路径
来源:互联网 发布:淘宝卖家资金保护中 编辑:程序博客网 时间:2024/06/09 17:30
题目描述
输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
解题思路
按照先序遍历将结点加入路径,如果当前结点是叶子结点则判断当前路径和是否为目标数,若满足条件,则把当前路径保存下来,并弹出结点;每一次递归返回父结点时,也回退一个结点。
代码
/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {public: vector<vector<int> > FindPath(TreeNode* root,int expectNumber) { vector<vector<int> > res; vector<int> path; if (root == nullptr) return res; Search(root, expectNumber, res, path); return res; } void Search(TreeNode * root, int expectNumber, vector<vector<int> > & res, vector<int> & path) { if (root->left == nullptr && root->right == nullptr) { if (root->val == expectNumber) { path.push_back(root->val); res.push_back(path); path.pop_back(); } return; } path.push_back(root->val); if (root->left) Search(root->left, expectNumber - root->val, res, path); if (root->right) Search(root->right, expectNumber - root->val, res, path); path.pop_back(); }};
阅读全文
0 0
- 剑指offer题解C++【24】二叉树中和为某一值的路径
- 剑指offer题解 二叉树中和为某一值的路径
- 剑指offer:二叉树中和为某一值的路径
- 【剑指offer】二叉树中和为某一值的路径
- 剑指offer--二叉树中和为某一值的路径
- 《剑指offer》二叉树中和为某一值的路径
- 【剑指Offer】二叉树中和为某一值的路径
- 剑指Offer--二叉树中和为某一值的路径
- 剑指offer:二叉树中和为某一值的路径
- 剑指offer 二叉树中和为某一值的路径
- 剑指offer:二叉树中和为某一值的路径
- [剑指offer]二叉树中和为某一值的路径
- 《剑指offer》-二叉树中和为某一值的路径
- 剑指offer 二叉树中和为某一值的路径
- 【剑指offer】二叉树中和为某一值的路径
- 剑指offer|二叉树中和为某一值的路径
- 《剑指offer》二叉树中和为某一值的路径
- 剑指offer 二叉树中和为某一值的路径
- [ASP.NET]内置对象简介
- WPF DataGrid DataGridTemplateColumn 列头checkbox如何在代码中取消选择
- QT与数据库的链接
- myeclipse发布项目到自定义文件夹
- Pjax的学习使用
- 剑指offer题解C++【24】二叉树中和为某一值的路径
- sonarQube之平台搭建及sonar-scanner扫描
- STL 知识点总结
- 机器学习转行之路:起点
- java中获取项目路径
- hibernate联级查询
- 毁灭
- QT 之 TCP/IP 服务器和客户端(一)
- 网络基础