您的位置:首页 > 其它

输入一个整数和一棵二元树。求出从根节点到叶节点的路径长度中与输入整数相等的所有路径。

2015-04-27 20:11 671 查看
题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径(必须为根到叶节点的路径)。

例如输入整数22和如下二元树

10

/ \

5 12

/ \ / \

4 7 11 14

则打印出一条路径:10, 5, 7。

void pathSumOfK_rTol(BiTree T,int k,vector<int>&path)
{
if (T)
{
path.push_back(T->data);
if (T->lchild==NULL && T->rchild==NULL)
{
if(T->data==k)
{
for(vector<int>::size_type ix = 0; ix < path.size()-1;ix++)
{
cout<<path[ix]<<",";
}
cout<<path[path.size()-1]<<endl;
}
path.pop_back();  //该节点处理完,从容器中删除
}
else
{
pathSumOfK(T->lchild,k-T->data,path);
pathSumOfK(T->rchild,k-T->data,path);
path.pop_back();
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐