基本思路:使用两个临时指针p1,p2,p1指向新创建的节点,p2指向创建过程中链表临时头结点。新节点创建后将其作为链表新的头节点。
typedef struct LNode{
int data;
struct LNode *next;
}LNode,*LinkList;
//创建一个逆序输入的n个元素的链表
LNode *createEndList(int n){
LNode *p1,*p2,*head = NULL;
for(int i=1;i<=n;i++)
{
p1 = (LNode *)malloc(sizeof(LNode));
if(p1==NULL)
exit(0);
printf("输入链表中倒数第%d个数",i);
scanf("%d",&p1->data);
if(head == NULL){
head = p1;
p2 = p1;
p2->next = NULL;
}
else
{
p1->next = p2;
head = p1;
p2 = p1;
}
}
return head;
}