I am trying to make linked list. I can add node one by one but I could not print the linked list as i wanted. How to print linked list node from top to bottom

```
#include<stdio.h>
#include<stdlib.h>

struct node{
  int N;
  struct node *next;
};

struct node* newNode(int number, struct node *next) {
    struct node *new = malloc(sizeof(*new));
    new->N = number;
    new->next = next;
    return new;
}

void show(struct node *head){
     struct node *c;
     c = head;
     while (c!=NULL){
           printf("%d\n",c->N);
           c = c->next;
     }
}

int main (void ) {
    struct node *head = NULL;

    head = newNode(10, head);
    head = newNode(20, head);
    head = newNode(30, head);
    head = newNode(40, head);

    show(head);
    return 0;
}

```

Output 
40
30
20
10

I am trying to print node like below 

10
20
30
40

How to get above output ?