调试时无错误,输出乱码,求改正

#include
#include
typedef struct lnode
{
int data;
struct lnode *next;
}lnode,*Linklist;

Linklist create(Linklist L)
{
int node;
Linklist p;
L=(Linklist)malloc(sizeof(lnode));
L->next=NULL;
printf("please input the node(end with 0):\n");
scanf("%d",&node);
while(node!=0)
{
p=(Linklist)malloc(sizeof(lnode));
p->data=node;
p->next=L->next;
L->next=p;
scanf("%d",&node);
}
return L;
}

void display(Linklist L)
{
Linklist p;
p=L->next;
int element;
element=L->data;
while(p!=NULL)
{
if(element>p->data)
{
element=p->data;
}
p=p->next;
}
printf("the min element is:%d",element);
}

main()
{
Linklist L=NULL;
L=create(L);
display(L);
}

 #include<stdio.h>
#include<malloc.h>
typedef struct lnode
{
    int data;
    struct lnode *next;
}lnode,*Linklist;



Linklist create(Linklist L)
{
    int node;
    Linklist p;
    L=(Linklist)malloc(sizeof(lnode));
    L->next=NULL;
    printf("please input the node(end with 0):\n");
    scanf("%d",&node);
    L->data = node;
    while (true)
    {
        scanf("%d",&node);
        if (node == 0) break;
        p=(Linklist)malloc(sizeof(lnode));

        p->next=L->next;
        L->next=p;

        p->data=node;
    }
    return L;
}



void display(Linklist L)
{
    Linklist p;
    p=L->next;
    int element;
    element=L->data;
    while(p!=NULL)
    {
        if(element>p->data)
        {
            element=p->data;
        }
        p=p->next;
    }
    printf("the min element is:%d",element);
}


int main()
{
    Linklist L=NULL;
    L=create(L);
    display(L);
}