微软100题(4) 在二元树中找出和为某一值的所有路径
来源:互联网 发布:顺丰科技java招聘 编辑:程序博客网 时间:2024/05/20 22:41
题目:输入一个整数和一棵二元树。
从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。
打印出和与输入整数相等的所有路径。
例如 输入整数22和如下二元树
10
/ /
5 12
/ \
4 7
则打印出两条路径:10, 12和10, 5, 7。
二元树节点的数据结构定义为:
struct BinaryTreeNode{int m_nValue;BinaryTreeNode* m_pLeft;BinaryTreeNode* m_pRight;};void FindPath(BinaryTreeNode* pRoot,int expectsum){if(pRoot==NULL) return;vector<int> path;int currsum = 0;FindPath(pRoot,expectsum,path,currsum);}void FindPath(BinaryTreeNode* pRoot,int expectsum,vector<int> &path,int currsum){currsum += pRoot->m_nValue;path.push_back(pRoot->m_nValue); bool isleaf = (pRoot->m_pLeft == NULL) && (pRoot->m_pRight == NULL);if(currsum == expectsum && isleaf == true)//达到叶节点,并且是期望和{int n = path.size();for (int i=0; i<n; ++i){cout<<path[i]<<" ";}cout<<endl;}if(pRoot->m_pLeft!=NULL)//递归在左子树找FindPath(pRoot->m_pLeft,expectsum,path,currsum);if(pRoot->m_pRight!=NULL)//递归在右子树找FindPath(pRoot->m_pRight,expectsum,path,currsum);path.pop_back();//返回父节点时候,弹出当前节点,返回父节点}
0 0
- 微软100题第4题(在二元树中找出和为某一值的所有路径)
- 微软100题(4) 在二元树中找出和为某一值的所有路径
- 微软算法100道题------在二元树中找出和为某一值的所有路径
- 微软编程题之在二元树中找出和为某一值的所有路径
- 微软面试100题-4.在二元树中找出和为某一值的所有路径
- 微软面试之4 在二元树中找出和为某一值的所有路径(树)
- 面试100题:4.在二元树中找出和为某一值的所有路径
- 面试100题:4.在二元树中找出和为某一值的所有路径
- 第四题(在二元树中找出和为某一值的所有路径)
- 在二元树中找出和为某一值的所有路径(4)
- 4. 微软面试题: 在二元树中找出和为某一值的所有路径(树)
- 微软等数据结构+算法面试100题(45)-- 在二元树中找出和为某一值的所有路径
- 程序员面试100题---4.在二元树中找出和为某一值的所有路径(树)
- 第4题.在二元树中找出和为某一值的所有路径(树)
- 算法题23 在二元树中找出和为某一值的所有路径
- No.4 在二元树中找出和为某一值的所有路径
- 在二元树中找出和为某一值的所有路径(树)
- 在二元树中找出和为某一值的所有路径(树)
- 【Java心得总结五】Java容器上——容器初探
- 【Android开发】动画范例2-旋转、平移、缩放和透明度渐变的补间动画
- Git学习系列博客全目录
- Linux常用命令大全
- 黑马程序员--ios基础--c语言--预处理指令、typedef、static和extern、递归
- 微软100题(4) 在二元树中找出和为某一值的所有路径
- 胜利大逃亡—bfs+状态压缩
- 编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。
- 使用opencv进行数字识别
- tgvvdyv
- 黑马程序员——IOS基础(OC面向对象编程三)
- LeeCode 判断两个二叉树是否相等
- 【坑】discuz中CSS中的图片的URL显示为localhost的解决
- CCSpriteFrameCache精灵帧缓存分析(2)