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

来源:互联网 发布:淘宝游戏专营何时开通 编辑:程序博客网 时间:2024/06/09 20:19

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

例如输入整数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();}}}


0 0
原创粉丝点击