剑指Offer——(24)二叉树中和为某一值的路径
来源:互联网 发布:网络平台服务合同 编辑:程序博客网 时间:2024/06/05 03:01
题目描述:
输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
实现如下:
//路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径//所以必须是root到叶节点的和//模拟一个栈,但在线用例要求将路径以vector的形式存储,所以只能使用vetor的push_back和pop模拟//注意://1.父节点将自己的子节点递归调用判断完毕后,此时返回到自己的函数栈帧时。最后需要将自己也pop//2.叶节点也需要将自己popclass Solution{public: vector<int> valueVec;//保存一路径中的元素值 vector<vector<int> > allPathVec;//保存符合某值的路径 int currentNumber = 0;//当前累计值 void Path(TreeNode *root, int expectNumber, int ¤tNumber) { if (root == NULL) return;//防御性动作 valueVec.push_back(root->val);//将此节点的值存入路径 currentNumber += root->val;//累计值累加 if (currentNumber == expectNumber && root->left == NULL && root->right == NULL)//判断当前值和某值是否相等且此节点必须为叶节点 { allPathVec.push_back(valueVec);//将路径存储 return;//结束本次调用 } else//否则递归调用传入left与right { Path(root->left, expectNumber, currentNumber); Path(root->right, expectNumber, currentNumber); currentNumber -= valueVec.back();//此时将本节点pop valueVec.pop_back();//减去本节点的值 } if (root->left != NULL || root->right != NULL)//判断这是否为父节点 { //若为父节点,则将本节点从路径中删除且从累计值中减去 currentNumber -= valueVec.back(); valueVec.pop_back(); } } vector<vector<int> > FindPath(TreeNode* root, int expectNumber) { if (root == NULL) return allPathVec;//防御性动作 Path(root, expectNumber, currentNumber);//递归调用 return allPathVec; }};
阅读全文
0 0
- 剑指Offer——(24)二叉树中和为某一值的路径
- 剑指Offer—24—二叉树中和为某一值的路径
- 剑指offer(24)—二叉树中和为某一值的路径
- 剑指offer——二叉树中和为某一值的路径(不错)
- 剑指offer:二叉树中和为某一值的路径
- 【剑指offer】二叉树中和为某一值的路径
- 剑指offer--二叉树中和为某一值的路径
- 《剑指offer》二叉树中和为某一值的路径
- 【剑指Offer】二叉树中和为某一值的路径
- 剑指Offer--二叉树中和为某一值的路径
- 剑指offer:二叉树中和为某一值的路径
- 剑指offer 二叉树中和为某一值的路径
- 剑指offer:二叉树中和为某一值的路径
- [剑指offer]二叉树中和为某一值的路径
- 《剑指offer》-二叉树中和为某一值的路径
- 剑指offer 二叉树中和为某一值的路径
- 【剑指offer】二叉树中和为某一值的路径
- 剑指offer|二叉树中和为某一值的路径
- 新手报到
- nodejs部署
- Java 注解的几大作用及使用方法详解(完)
- Linux shell 之 提取文件名和目录名的一些方法
- 电影推荐系统代码详细解释
- 剑指Offer——(24)二叉树中和为某一值的路径
- bfs与dfs的用途与区别
- web项目打包成exe在windows下一键安装 jdk+Tomcat+mysql
- javaGUI的简单了解及适配器模式
- SELinux深入理解
- Mac OS下安装ffmpeg和ffplay
- Linux进程间通信——使用流套接字
- String.split的缺陷
- 聪明的老板才不招工资低的程序员