# 1. 代码段1简介:链表中的尾插法
## 1.1. 代码1
void CreateListR(LinkNode *&L,ElemType a[],int n)
{ LinkNode *s,*r;//1
L=(LinkNode *)malloc(sizeof(LinkNode));//2
r=L;//3
for(int i=0;i<n;i++)//4
{s=(LinkNode*)malloc(sizeof(LinkNode));//5
s->data=a[i];//6
r->next=s;//7
r=s;//8
}
r->next=NULL;//9
}
## 2. 不懂的地方
6-8行理解起来有时候会有点乱,自己写得时候经常忘记补上第九行的r->next=NULL,也就是不是很懂第九行的具体意义,书上说明是“尾节点的next域置尾NULL”如果不写这句话会怎么样呢?
# 2. 代码段1简介:尾插法建立双链表。
## 2.1 代码1
void CreateListR(DLinkNode *&L,ElemType a[],int n)//1
{ DLinkNode *s,*r;//2
L=(DLinkNode*)malloc(sizeof(DLinkNode));//3
r=L;//4
for(int i=0;i<n;i++)//5
{
s=(DLinkNode*)malloc(sizeof(DLinkNode));//6
s->data=a[i];//7
r->next=s;s->prior=r;//8
r=s;//9
}
r->next=NULL;//10
}
## 2.2 自己不懂de地方
8,9行的指针指向经过画图后还是会有点理解不太过来,r指针是不是可以作为一个节点之间的连线存在?
原文:https://www.cnblogs.com/wch045/p/10597207.html