typedef struct Lnode
{
ElemType data;
struct Lnode *next;
}LNode;
//头插入法创建单链表,链表的头结点head作为返回值
LNode *creat_LinkList(void)
{
int data;
LNOde *head,*p;
head=(LNode *)malloc(sizeof(LNode));
head->next=NULL;
while (1)
{
scanf("%d",&data);
if (data==32767)
{
break;
}
p=(LNode *)malloc(sizeof(LNode));
p->data=data;
p->next=head->next;
head->next=p;
/*链钩,创建的节点总是作为第一个结点*/
}
return (head);
}


对于单链表,无论是哪种操作,只要涉及到钩链(或重新钩链),如果没有明确给出直接后继,钩链(或重新钩链)的次序必须是“先右后左”。