一个二叉树,打印从根节点到叶子节点的所有路径。
//打印到叶子节点的所有路径
void PrintTreePaths(TreeNode* root,vector<int> &path)
{
if(root==NULL)
return;
path.push_back(root->data);
if(root->left==NULL&&root->right==NULL)
{
for(Iter iter=path.begin();iter!=path.end();iter++)
cout<<*iter<<" ";
cout<<endl;
}
else
{
PrintTreePaths(root->left,path);
PrintTreePaths(root->right,path);
}
path.pop_back();
}
void PrintTreePathsTest()
{
TreeNode* root=NULL;
cout<<"make tree"<<endl;
MakeTree(root);
cout<<"the tree : ";
LevelOrderTraverse(root);
cout<<"the tree : ";
LevelOrderTraverse1(root);
vector<int> path;
cout<<"all path : "<<endl;
PrintTreePaths(root,path);
}