编程题——二叉树和的路径
来源:互联网 发布:幸运28网站源码2016 编辑:程序博客网 时间:2024/06/04 18:00
问题描述:
输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
解题思路:
使用栈来存放后序遍历的节点,并且每当每个节点被访问两次时,才将此节点弹出栈。此时,若此节点是叶子节点,且路径和与所设置整数相等,则将结果记录在vector容器中。
非递归代码:
/*struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right;TreeNode(int x) :val(x), left(NULL), right(NULL) {}};*/class Solution {public: bool flag[1000]; vector<vector<int> > FindPath(TreeNode* root,int expectNumber) {vector<vector<int>> res; stack<TreeNode*> s; vector<int> share; int i=0, sum=0; while(!s.empty()||root){ if(root){ s.push(root); share.push_back(root->val); sum += root->val; root=root->left; flag[i++]=0; } else if(flag[i-1]==0){ root=s.top()->right; flag[i-1]=1; } else { TreeNode* roots = s.top(); s.pop(); if( (roots->left==NULL) && (roots->right==NULL) && (sum==expectNumber)){ res.push_back(share); } share.pop_back(); sum -= roots->val; i--; } } return res; }};
阅读全文
0 0
- 编程题——二叉树和的路径
- [编程题]关于二叉树的路径
- 二叉树的路径和
- 二叉树的路径和
- 二叉树的路径和
- 二叉树的路径和
- 二叉树的路径和
- 二叉树的路径和
- 二叉树的路径和
- 二叉树的路径和
- 二叉树的路径和
- 二叉树的路径和
- 二叉树的路径和
- 二叉树的路径和
- 二叉树的路径和
- 二叉树的路径和
- 二叉树的路径和
- 二叉树的路径和
- 【简记】Java Web 内幕——CDN简介
- Python 算法基础 排序实现
- 【经验随笔】MYSQL表加锁升级导致数据库访问失败
- The MRC database dictionary之MEANC库 (Mean Colorado Meaningfulness 意义性)
- 构造拷贝构造的N种调用情况
- 编程题——二叉树和的路径
- HTML2
- C语言字符串相关操作总结
- OpenCV获取摄像头数据并显示在窗口里 Python实现
- 贪心算法 POJ3253 Fence Repair
- The MRC database dictionary之MRC_words
- SQLite与Android的数据交互
- Quartz 入门(1)
- CameraDemo