I can create node one by one but I don't think this is efficient way to create link list

I have created three node's in the program 1 2 3

Code:
#include<stdio.h>#include<stdlib.h>


struct Node
{
  int data;
  struct Node *next;
};
  int main()
{
  struct Node* head = NULL;
  struct Node* second = NULL;
  struct Node* third = NULL;
  struct Node *temp = NULL;




  head  = (struct Node*)malloc(sizeof(struct Node));
  second = (struct Node*)malloc(sizeof(struct Node));
  third  = (struct Node*)malloc(sizeof(struct Node));
 
  head->data = 1;       //assign data in first node
  head->next = second;  // Link first node with second
 
  second->data = 2;     //assign data to second node
  second->next = third;
 
  third->data = 3;     //assign data to third node
  third->next = NULL;


   temp = head;
  while (temp != NULL)
  {
     printf(" %d ", temp->data);
     temp = temp->next;
  }
  
  return 0;
}
I am looking help to create 100 numbers in the list

I think I can use for loop

Code:
for ( i = 0, i <100; i++)

{
  //code here
}
How to create 100 numbers in the list