struct TreeNode
{
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
TreeNode* createTreeNode(){
int d;
cin>>d;
TreeNode* r=NULL;
if(d!=0){
r=new TreeNode(d);
r->left=createTreeNode();
r->right=createTreeNode();
}
return r;
}
void show(TreeNode* p)//preorder output
{
if(p)
{
cout<<p->val<<",";
show(p->left);
show(p->right);
}
else
{
cout<<"#,";
}
}
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
ListNode* createListNode(){
int d;
ListNode* head=NULL;
cin>>d;
if(d!=0){
head=new ListNode(d);
head->next=createListNode();
}
return head;
}
void show(ListNode* node){
ListNode* t=node;
while(t!=NULL){
cout<<t->val<<",";
t=t->next;
}
cout<<endl;
}