The first call to scanf reads a single character, but you most likely had to hit return for the buffer to be sent for processing. Because of this, the stream contains two characters, the one you typed and a newline. The newline then causes problems with further calls to scanf. The simplest solution is to call getchar and clear it out before it can cause mischief.
Code:
while (check == 0)
{
printf("\nEnter a character:\n");
scanf("%c",&val);
getchar();
curr->next=initLLNode(val);
curr=curr->next;
printf("Do you still want to enter more characters\n1. YES\n2. NO\nChoose either 1 or 2:");
scanf("%d",&chose);
num=num+1;
if (chose==2)
{
check = 1;
}
}