二叉树中和为某一值的路径
来源:互联网 发布:华泰证券交易软件 编辑:程序博客网 时间:2024/05/29 15:50
1.问题描述
输入一颗二叉树和一个整数,打印出二叉树中的结点值的和为输入整数的所有路径。从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(来自《剑指offer》)
2.分析
找到值为某一值的路径,我们知道无非就是树的遍历,但是怎么保存呢?因为树在遍历的时候需要递归,我们可以用栈来保存路径。比如:我们开始遍历 先是根结点 压栈,在是左孩子 压栈,如果左孩子是叶子结点的话,那么我们判断和是不是我们期望的值 如果是那么 打印 栈里面的内容,然后出栈(不管和是不是期望值),在右孩子 压栈,重复上面的过程。这样我们就能得到所有的路径。
3.代码
void FindPath(TreeNode* node,Stack *s,int sum){ if (node == NULL) { return; } StackNode *snode = (StackNode*)malloc(sizeof(StackNode)); snode->data = node->data; push(s, snode); if (!node->lChild && !node->rChild) { if (sum == sumOfStack(s)) //对栈内元素求和 { PrintfStack(s); //打印栈内元素 } } if (node->lChild != NULL) { FindPath(node->lChild, s,sum); } if (node->rChild != NULL) { FindPath(node->rChild, s,sum); } pop(s); }
0 0
- 【树】二叉树中和为某一值的路径
- 【树6】二叉树中和为某一值的路径
- 题目11:二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- 二叉树中和为某一值的所有路径
- 题目1368:二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- 1368:二叉树中和为某一值的路径 @jobdu
- 二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- Q25:二叉树中和为某一值的路径
- 剑指offer:二叉树中和为某一值的路径
- 二叉树中和为某一值的路径(剑指offer25)
- Android toast工具类
- iOS8新特性及Tarner培训总结
- ORACLE LAG LEAD 函数
- Java中的Set, List, Map漫谈
- UVA 191 || Intersection (判断线段是否与矩形相交
- 二叉树中和为某一值的路径
- java简单操作mongodb
- 【转】关于省市级联
- jQuery mobile初探
- USACO2.2.3 Runaround Numbers (runround)
- iOS/Android开发推送SDK列表
- Site Analysis Note 19
- Can't connect to any repository: ,cannot open git-receive-pack
- 请支付谷歌支付服务器上检查