在二元树中找出和为某一值的所有路径
2013-09-26 19:37
190 查看
题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。
struct BinaryTreeNode { int m_nValue; BinaryTreeNode *m_pLeft; BinaryTreeNode *m_pRight; }; void FindPath (BinaryTreeNode *pTreeNode, int expectedSum, vector<int> &path, int ¤tSum) { if (pTreeNode == NULL) return; currentSum += pTreeNode->m_nValue; path.push_back(pTreeNode->m_nValue); bool isLeaf = (!pTreeNode->m_pLeft && !pTreeNode->m_pRight); if (currentSum == expectedSum && isLeaf) { vector<int>::iterator iter = path.begin(); for (; iter != path.end(); ++iter) cout << *iter << '\t'; cout << endl; } if (pTreeNode->m_pLeft) FindPath(pTreeNode->m_pLeft, expectedSum, path, currentSum); if (pTreeNode->m_pRight) FindPath(pTreeNode->m_pRight, expectedSum, path, currentSum); currentSum -= pTreeNode->m_nValue; path.pop_back(); }
相关文章推荐
- 4.在二元树中找出和为某一值的所有路径[FindPathsInBinaryTree]
- 微软100题第4题(在二元树中找出和为某一值的所有路径)
- 在二元树中找出和为某一值的所有路径 C++实现
- (转)在二元树中找出和为某一值的所有路径,java版本
- 在二元树中找出和为某一值的所有路径的个人代码
- 程序员面试题精选100题(04)-在二元树中找出和为某一值的所有路径—python实现
- 【程序猿笔试面试解题指南】在二元树中找出和为某一值的所有路径
- 4.在二元树中找出和为某一值的所有路径(树)
- 程序员面试题100题第04题——在二元树中找出和为某一值的所有路径
- 【面试题】在二元树中找出和为某一值的所有路径
- 算法与数据结构面试题(4)-在二元树中找出和为某一值的所有路径
- 程序员面试题精选100题(04)-在二元树中找出和为某一值的所有路径
- NO_4在二元树中找出和为某一值的所有路径
- 100题_04 在二元树中找出和为某一值的所有路径
- 在二元树中找出和为某一值的所有路径
- 二元树中找出和为某一值的所有路径
- 练习系列 - 6、在二元树中找出和为某一值的所有路径
- 算法题23 在二元树中找出和为某一值的所有路径
- 4. 微软面试题: 在二元树中找出和为某一值的所有路径(树)
- 微软面试100题-4.在二元树中找出和为某一值的所有路径