#include <iostream>
#include <vector>
#include <cstdio>
#include <stdlib.h>
using namespace std;
struct node
{
int data;
struct node* left;
struct node* right;
};
struct node* newNode(int data)
{
struct node* new_node=(struct node*)malloc(sizeof(struct node));
new_node->data=data;
new_node->left=NULL;
new_node->right=NULL;
return new_node;
}
void path(struct node* node,vector<vector<int> > &res,vector<int> &s)
{
if(node==NULL) return;
s.push_back(node->data);
if(node->left==NULL && node->right==NULL)
res.push_back(s);
else
{
path(node->left,res,s);
path(node->right,res,s);
}
s.pop_back();
}
int main() {
struct node* root = newNode(1);
root->left= newNode(2);
root->right= newNode(3);
root->left->left= newNode(4);
root->left->right= newNode(5);
vector<vector<int> >res;
vector<int> s;
path(root,res,s);
for(int i=0;i<res.size();i++)
{
for(int j=0;j<res[i].size();j++)
{
cout<<res[i][j]<<"\t";
}
cout<<"\n";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8c3RkbGliLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3Qgbm9kZSAKewoJaW50IGRhdGE7CglzdHJ1Y3Qgbm9kZSogbGVmdDsKCXN0cnVjdCBub2RlKiByaWdodDsKfTsKCnN0cnVjdCBub2RlKiBuZXdOb2RlKGludCBkYXRhKQp7CglzdHJ1Y3Qgbm9kZSogbmV3X25vZGU9KHN0cnVjdCBub2RlKiltYWxsb2Moc2l6ZW9mKHN0cnVjdCBub2RlKSk7CgluZXdfbm9kZS0+ZGF0YT1kYXRhOwoJbmV3X25vZGUtPmxlZnQ9TlVMTDsKCW5ld19ub2RlLT5yaWdodD1OVUxMOwoJcmV0dXJuIG5ld19ub2RlOwp9Cgp2b2lkIHBhdGgoc3RydWN0IG5vZGUqIG5vZGUsdmVjdG9yPHZlY3RvcjxpbnQ+ID4gJnJlcyx2ZWN0b3I8aW50PiAmcykKewoJCglpZihub2RlPT1OVUxMKSByZXR1cm47CglzLnB1c2hfYmFjayhub2RlLT5kYXRhKTsKCQoJCglpZihub2RlLT5sZWZ0PT1OVUxMICYmIG5vZGUtPnJpZ2h0PT1OVUxMKQoJcmVzLnB1c2hfYmFjayhzKTsKCQoJCgllbHNlCgl7CglwYXRoKG5vZGUtPmxlZnQscmVzLHMpOwoJcGF0aChub2RlLT5yaWdodCxyZXMscyk7Cgl9CglzLnBvcF9iYWNrKCk7Cn0KaW50IG1haW4oKSB7CgkKICBzdHJ1Y3Qgbm9kZSogcm9vdCA9IG5ld05vZGUoMSk7CiAgcm9vdC0+bGVmdD0gbmV3Tm9kZSgyKTsKICByb290LT5yaWdodD0gbmV3Tm9kZSgzKTsKICByb290LT5sZWZ0LT5sZWZ0PSBuZXdOb2RlKDQpOwogIHJvb3QtPmxlZnQtPnJpZ2h0PSBuZXdOb2RlKDUpOwogIHZlY3Rvcjx2ZWN0b3I8aW50PiA+cmVzOwogIHZlY3RvcjxpbnQ+IHM7CiAgcGF0aChyb290LHJlcyxzKTsKICBmb3IoaW50IGk9MDtpPHJlcy5zaXplKCk7aSsrKQogIHsKICAJZm9yKGludCBqPTA7ajxyZXNbaV0uc2l6ZSgpO2orKykKICAJewogIAkJY291dDw8cmVzW2ldW2pdPDwiXHQiOwogIAl9CiAgCWNvdXQ8PCJcbiI7CiAgfQogIHJldHVybiAwOwp9