经典算法学习——求二叉树节点之和等于sum的路径
发布时间
阅读量:
阅读量
在二叉树结构中,叶子节点的数量与从根节点延伸至各叶子节点的路径数量相等。若为每个节点赋予一个data值,则每条路径上所有节点的data值之和即为sum。现根据给定的sum值,需要确定满足条件的路径有哪些。相关代码已上传至https://github.com/chenyufeng1991/BinaryTreePath>。
该问题的基本解决思路是采用递归方式进行查找。在遍历过程中,每当访问到一个节点时,便将该节点的值存入vector容器中。当抵达叶子节点时,计算当前vector中所有元素的总和,并与给定的sum进行比较。若两者相等,则说明当前路径满足条件,可将其输出。若不相等,则清空vector,并继续进行后续的查找操作。
核心代码如下:
void PathLength(Node *node, vector<int> &vec, int sum)
{
if (node == NULL)
{
return;
}
if (node ->lChild != NULL)
{
vec.push_back(node->data);
PathLength(node->lChild,vec,su
全部评论 (0)
还没有任何评论哟~
