#include <iostream>
#include <stdlib.h>
using namespace std;
#define MAX 8
int i=1;
typedef struct node
{
int num;
struct node* pnext;
}qnode,*pnode;
pnode init()
{
int i=MAX;
int num_;
pnode head,p,q;
head=(pnode)malloc(sizeof(qnode));
cin>>num_;
head->num=num_;
head->pnext=NULL;
q=head;
i--;
while(i--)
{
p=(pnode)malloc(sizeof(qnode));
cin>>num_;
p->num=num_;
q->pnext=p;
q=p;
}
q->pnext=NULL;
return head;
}
void traverse(pnode head)//递归遍历
{
pnode p;
p=head;
if(p->pnext==NULL)
{
cout<<p->num;
}
else
{ cout<<p->num;
p=p->pnext;
traverse(p);
}
}
void lengh(pnode head)//递归求长度
{
if(head->pnext==NULL)
{
cout<<i;
}
else
{
i++;
head=head->pnext;
lengh(head);
}
}
int main()
{
pnode head;
head=init();
traverse(head);
cout<<endl;
lengh(head);
return 0;
}