资源经验分享二叉树中和为某一个值的路径(C++版本)

二叉树中和为某一个值的路径(C++版本)

2019-12-18 | |  87 |   0

原标题:二叉树中和为某一个值的路径(C++版本)

原文来自:CSDN      原文链接:https://blog.csdn.net/xp178171640/article/details/103578674


使用二叉树的相关定义及函数在:二叉树最小结构(C++版本)

注意点:
找到的是从根节点到叶子节点的所有路径中满足条件的。

实现代码:

void PrintData(std::vector<int>& paths){
	for (auto& curData : paths) std::cout << curData << " ";
	std::cout << std::endl;}
void FindPath(BinaryTreeNode* pRoot, std::vector<int>& paths, int curData, int destData)
{
	if (nullptr == pRoot) return;

	curData += pRoot->data;
	paths.push_back(pRoot->data);

	// 当前节点是叶子节点才做出判断
	if (nullptr == pRoot->pLeft && nullptr == pRoot->pRight)
	{
		if (curData == destData) PrintData(paths);
	}
	
	// 分别进入左子树和右子树
	if (pRoot->pLeft != nullptr) FindPath(pRoot->pLeft, paths, curData, destData);
	if (pRoot->pRight != nullptr) FindPath(pRoot->pRight, paths, curData, destData);

	curData -= pRoot->data;
	paths.pop_back();
}
void FindPath(BinaryTreeNode* pRoot, int destData)
{
	if (nullptr == pRoot) return;

	std::vector<int> paths;
	FindPath(pRoot, paths, 0, destData);
}

免责声明:本文来自互联网新闻客户端自媒体,不代表本网的观点和立场。

合作及投稿邮箱:E-mail:editor@tusaishared.com

上一篇:回归算法-线性回归分析-过拟合欠拟合岭回归

下一篇:从混淆矩阵中计算每一类的分类精度,Recall或Sensitivity,Positive predictive value (PPV),speciall----python实现

用户评价
全部评价

热门资源

  • Python 爬虫(二)...

    所谓爬虫就是模拟客户端发送网络请求,获取网络响...

  • TensorFlow从1到2...

    原文第四篇中,我们介绍了官方的入门案例MNIST,功...

  • TensorFlow从1到2...

    “回归”这个词,既是Regression算法的名称,也代表...

  • 机器学习中的熵、...

    熵 (entropy) 这一词最初来源于热力学。1948年,克...

  • TensorFlow2.0(10...

    前面的博客中我们说过,在加载数据和预处理数据时...