基本思路:使用两个临时指针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;
}