关于创建动态链表即输出链表的模板代码
关于创建动态链表;
首先我们创建一个结构体
typedef struct ListNode
{
int val;//定义结构体内的数据
struct ListNode * next;
}ListNode;
创建动态链表
ListNode * creat()
{
ListNode * head , * p1 , * p2;
p1 = p2 = (ListNode * )malloc(LEN);//开辟动态单元
head = NULL;//初始头节点为空
scanf("%d",&p1 -> val);
while(p1 -> val != -1)//当输入某个数据时表示链表创建结束
{
if(head == NULL)head = p1;//初始head为第一个节点
else p2 -> next = p1;//从第二个节点开始就开始连接相邻节点
p2 = p1;//p2存储原来的p1节点
p1 = (ListNode * )malloc(LEN);//创建动态链表
scanf("%d",&p1 -> val);//输入数据
}
p2 -> next = NULL;//使尾节点为空
return head;//返回头节点
}
输出动态链表
void print(ListNode * head)
{
if(head ==NULL)//如果链表为空,输出NULL
{
puts("NULL");
return;
}
ListNode * p = head;
while(p)//依次输出链表内数据
{
printf("%d ",p -> val);
p = p -> next;
}
puts("");
}
主函数内
int main()
{
ListNode * head;
head = creat();//创建
print(head);//输出
return 0;
}
看看运行结果吧~
输入 9 8 7 6 5 -1
输出 9 8 7 6 5
截图如下

以上算是创建动态链表的一个模板!!!!

466





