链表可以没有头结点,但是不能没有头指针.
单链表中第一个结点的存储位置叫做头指针,最后一个结点的指针域为空,但是有数据域.整个链表的存取从头指针开始.如果链表有头结点,那么头指针就是指向头结点数据域的指针,如下图所示:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e5ef945770b727e25035d01829823816.png)
没有头结点的单链表如下所示;
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/759916cce5c38a749b1a06896bb3e868.png)
**
注意:
**
①头结点是为了操作方便和统一设立的,它的数据域一般无意义(存储链表一些信息).
②无论链表是否为空,头指针都不为空.
#include <iostream>
using namespace std;
struct node
{
int data;
struct node *next;
};
**//尾插法构建不带头结点的单链表**
struct node * creat_wf(int n)
{
struct node *head;
struct node *p,*q;
head = NULL;
for(int i=0;i<n;i++)
{
p=(struct node *)malloc(sizeof(struct node));
cin>>p->data;
if(head == N