在二元树中找出和为某一值的所有路径的个人代码
2012-02-06 11:06
267 查看
题目:
输入一个整数和一棵二元树。
从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。
打印出和与输入整数相等的所有路径。
例如 输入整数22和如下二元树
10
/ \
5 12
/ \
4 7
则打印出两条路径:10, 12和10, 5, 7。
content: 保存节点路径
// 该算法运用了二叉树后序算法
void findpath(BSTreeNode* proot, int &thissum, std::vector<int>& content)
{
if (proot == NULL)
return;
thissum += proot->m_value;
content.push_back(proot->m_value);
findpath(proot->m_pleft, thissum, content);
findpath(proot->m_pright, thissum, content);
if (thissum == DEFINE_NUMBER)
{
// print the vector content
}
thissum -= proot->m_value; //返回上层减去该层的数据
content.pop_back(); //remove该层的数据
}
输入一个整数和一棵二元树。
从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。
打印出和与输入整数相等的所有路径。
例如 输入整数22和如下二元树
10
/ \
5 12
/ \
4 7
则打印出两条路径:10, 12和10, 5, 7。
content: 保存节点路径
// 该算法运用了二叉树后序算法
void findpath(BSTreeNode* proot, int &thissum, std::vector<int>& content)
{
if (proot == NULL)
return;
thissum += proot->m_value;
content.push_back(proot->m_value);
findpath(proot->m_pleft, thissum, content);
findpath(proot->m_pright, thissum, content);
if (thissum == DEFINE_NUMBER)
{
// print the vector content
}
thissum -= proot->m_value; //返回上层减去该层的数据
content.pop_back(); //remove该层的数据
}
相关文章推荐
- 每天一道算法题(1)——在二元树中找出和为某一值的所有路径(java代码)
- 程序员面试题精选100题(04)-在二元树中找出和为某一值的所有路径
- 在二元树中找出和为某一值的所有路径(树)----面试题系列
- 在二元树中找出和为某一值的所有路径
- 第4题.在二元树中找出和为某一值的所有路径(树)
- Java实现:在二元树中找出和为某一值的所有路径
- 数据结构面试题1.2.5-在二元树中找出和为某一值的所有路径
- 在二元树中找出和为某一值的所有路径
- 【练习】在二元树中找出和为某一值的所有路径
- .在二元树中找出和为某一值的所有路径
- 3.在二元树中找出和为某一值的所有路径
- 在二元树中找出和为某一值的所有路径(树)
- IT公司100题-4-在二元树中找出和为某一值的所有路径
- 在二元树中找出和为某一值的所有路径(树)
- 微软100题第4题(在二元树中找出和为某一值的所有路径)
- 在二元树中找出和为某一值的所有路径
- 在二元树中找出和为某一值的所有路径
- 【算法】在二元树中找出和为某一值的所有路径
- 程序员面试题100题第04题——在二元树中找出和为某一值的所有路径
- 算法与数据结构面试题(4)-在二元树中找出和为某一值的所有路径