首页 > 试题广场 >

给定一个二叉树,且每个节点存储一个值。设计一个算法,实现:对

[问答题]
给定一个二叉树,且每个节点存储一个值。设计一个算法,实现:对于一个给定的数值, 打印出所有的路径。这条路径不必要开始于或结束语根节点或叶节点。
bool visitTreePathByValue(TreeNode * pNode , int nNodeVal)
{
if (NULL == pNode)
{
return false;
}
if (nNodeVal == pNode->value())
{
printf("%d" , pNode->value());
return true;
}
bool bVisit = false;
bVisit = visitTreePathByValue(pNode->left() , nNodeVal);
if (bVisit)
{
printf("%d" , pNode->value());
}
bVisit = visitTreePathByValue(pNode->right() , nNodeVal);
if (bVisit)
{
printf("%d" , pNode->value());
}
return bVisit;
}

发表于 2016-01-25 15:37:39 回复(0)
向上的路径不是也要打印吗?
发表于 2020-03-07 19:52:04 回复(0)
/**
* 使用广度优先算法或者深度优先算法
*/
发表于 2018-07-22 20:04:36 回复(0)
bool visitTreePathByValue(TreeNode *pNode, int nNodeVal){
if(NULL == pNode)
{
return false;
}
if(nNodeVal == pNode->value())
{
printf("%d, pNode->value());
return true;
}
bool bVisit = false;
bVisit = visitTreePathByValue(pNode->left(), nNodeVal);
if(bVisit)
{
printf("%d", pNode->value());
}
bVisit = visitTreePathByValue(pNode->right(),nNodeVal());
if(bVisit)
{
printf("%d, pNode->value());
}
return bVisit;
}
发表于 2018-01-26 13:41:00 回复(0)