Small White C Language Linked List Problem

  c++, question

I just started learning C, and in the process of writing the questions, debug has not found any problems for a long time. . I don’t know why p_node in the following code has always been null, please give some advice.
Problem description:
4-3 Find Table Length of Chain Table (10 Points)
This topic requires the realization of a function to find the table length of a chain table.
Enter sample:

1 3 4 5 2 -1
Output sample:


My code:

#include <stdio.h>
 #include <stdlib.h>
 typedef int ElementType;
 typedef struct LNode *PtrToLNode;
 struct LNode {
 ElementType Data;
 PtrToLNode Next;
 typedef PtrToLNode List;
 List Read();  /* Details are not shown here */
 int Length( List L );
 int main()
 List L = Read();
 printf("%d\n", Length(L));
 return 0;
 /* Your code will be embedded here */
 List Read()
 ElementType a[100];
 int i = 0;
 List p_list,p_node;
 //Initialize linked list
 p_list = (List)malloc(sizeof(List));
 for (int j = 0;   j < 100;  ++j) {
 a[j] = 0;
 //Scan until the input is -1
 p_list->Data = a[i];
 p_list->Next = NULL;
 p_node = p_list->Next;
 while (a[i]!  =-1)
 p_node = (List)malloc(sizeof(List));
 p_node->Data = a[i];
 p_node->Next = NULL;
 p_node = p_node->Next;
 return p_list;
 int Length( List L )
 int num;
 while (L->Next !  = NULL)
 return num-1;

The problem has been solved, and there is a problem with the newly created part of the linked list.