文章来自于:博客
以下内容以尾插法为例分析:
创建带头结点的链表:
Node *Head,*r,*LNew; // r 等同与上图中的L
/*申请节点*/
Head = (Node*)malloc(sizeof(Node));
//带头结点
r = Head;
r->next = NULL;
//初始赋值
for(int i = 0; i < 10; ++i){
/* 申请节点 */
LNew = (Node *)malloc(sizeof(Node));
LNew->data = i;
r->next = LNew;
LNew->next = NULL;
r = LNew;
}
创建不带头结点的链表
Node *Head,*r,*Lnew;
/*申请节点*/
Head=(Node*)malloc(sizeof(Node));
//不带头结点
r=Head=NULL;
//初始赋值
for(int i = 0; i < 5; ++i){
/* 申请节点 */
LNew = (Node *)malloc(sizeof(Node));
LNew->data = i;
LNew->next = NULL;
if(r == NULL){
r = Head = LNew;
}else{
r->next = LNew;
}
r = LNew;
}
//返回头结点指针
return Head;