#include <stdio.h>
#include<stdlib.h>
struct node {
int data;
struct node *left , *right;
};
struct node* newNode(int data);
void printarr(int arr[] , int l);
void printpath(struct node* root);
void printpathrecur(struct node* root , int path[] , int l);
struct node* newNode(int data) {
struct node
* newn
= (struct node
*)malloc(sizeof(struct node
)); newn->left = newn->right = NULL;
newn->data = data;
return newn;
}
void printpathrecur(struct node* root , int path[] , int l) {
if(root == NULL)
return;
path[l] = root->data;
l++;
if( root->left == NULL && root->right == NULL) {
printarr(path,l);
}
else {
printpathrecur(root->left , path,l);
printpathrecur(root->right , path , l);
}
}
void printpath(struct node* root) {
int path[100];
int l=0;
printpathrecur(root , path , l);
}
void printarr(int path[] , int l) {
int i=0;
for(i=0;i<l;i++) {
}
}
int main(void) {
struct node *root = newNode(1);
root->left = newNode(2);
root->right = newNode(3);
root->left->left = newNode(4);
root->left->right = newNode(5);
/* Print all root-to-leaf paths of the input tree */
printpath(root);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlPHN0ZGxpYi5oPgoKc3RydWN0IG5vZGUgewoJaW50IGRhdGE7CglzdHJ1Y3Qgbm9kZSAqbGVmdCAsICpyaWdodDsKfTsKCnN0cnVjdCBub2RlKiBuZXdOb2RlKGludCBkYXRhKTsKdm9pZCBwcmludGFycihpbnQgYXJyW10gLCBpbnQgbCk7CnZvaWQgcHJpbnRwYXRoKHN0cnVjdCBub2RlKiByb290KTsKdm9pZCBwcmludHBhdGhyZWN1cihzdHJ1Y3Qgbm9kZSogcm9vdCAsIGludCBwYXRoW10gLCBpbnQgbCk7CnN0cnVjdCBub2RlKiBuZXdOb2RlKGludCBkYXRhKSB7CglzdHJ1Y3Qgbm9kZSogbmV3biA9IChzdHJ1Y3Qgbm9kZSAqKW1hbGxvYyhzaXplb2Yoc3RydWN0IG5vZGUpKTsKCW5ld24tPmxlZnQgPSBuZXduLT5yaWdodCA9IE5VTEw7CgluZXduLT5kYXRhID0gZGF0YTsKCXJldHVybiBuZXduOwp9CnZvaWQgcHJpbnRwYXRocmVjdXIoc3RydWN0IG5vZGUqIHJvb3QgLCBpbnQgcGF0aFtdICwgaW50IGwpIHsKCWlmKHJvb3QgPT0gTlVMTCkgCgkJcmV0dXJuOwoJCglwYXRoW2xdID0gcm9vdC0+ZGF0YTsKCWwrKzsKCWlmKCByb290LT5sZWZ0ID09IE5VTEwgJiYgcm9vdC0+cmlnaHQgPT0gTlVMTCkgewoJCXByaW50YXJyKHBhdGgsbCk7Cgl9CgllbHNlIHsKCQlwcmludHBhdGhyZWN1cihyb290LT5sZWZ0ICwgcGF0aCxsKTsKCQlwcmludHBhdGhyZWN1cihyb290LT5yaWdodCAsIHBhdGggLCBsKTsKCX0KfQoKdm9pZCBwcmludHBhdGgoc3RydWN0IG5vZGUqIHJvb3QpIHsKCWludCBwYXRoWzEwMF07CglpbnQgbD0wOwoJcHJpbnRwYXRocmVjdXIocm9vdCAsIHBhdGggLCBsKTsKfQoKdm9pZCBwcmludGFycihpbnQgcGF0aFtdICwgaW50IGwpIHsKCWludCBpPTA7Cglmb3IoaT0wO2k8bDtpKyspIHsKCQlwcmludGYoIiVkICIscGF0aFtpXSk7Cgl9CglwcmludGYoIlxuIik7Cn0KaW50IG1haW4odm9pZCkgewogc3RydWN0IG5vZGUgKnJvb3QgPSBuZXdOb2RlKDEpOwogIHJvb3QtPmxlZnQgICAgICAgID0gbmV3Tm9kZSgyKTsKICByb290LT5yaWdodCAgICAgICA9IG5ld05vZGUoMyk7CiAgcm9vdC0+bGVmdC0+bGVmdCAgPSBuZXdOb2RlKDQpOwogIHJvb3QtPmxlZnQtPnJpZ2h0ID0gbmV3Tm9kZSg1KTsgCiAKICAvKiBQcmludCBhbGwgcm9vdC10by1sZWFmIHBhdGhzIG9mIHRoZSBpbnB1dCB0cmVlICovCiAgcHJpbnRwYXRoKHJvb3QpOwogCiAgZ2V0Y2hhcigpOwogIHJldHVybiAwOwp9Cg==