一、概述
前面我们已经完成了带头结点的链表,今天我们来完成一下不带头结点的链表。事实上不带头结点的链表玉带头结点的链表差别在哪呢?
(1)带头结点的单链表更容易操作,因为不带头结点的单链表在第一个节点的操作与其他节点不一样,在初始化的时候就必须把第一个结点创建出来,然后将它的next置空而不带头结点的单链表则直接置空即可。
(2)不带头结点的单链表,初始化时一定要返回指向头结点的地址,所以要用二级指针。
(3)
不带头结点的单链表在插入、删除、输出时判断条件不一样,不带头结点的单链表判断为空时是while(head!=NULL)而不是while(head->next!=NULL)。
为什么不带头结点初始化有2种方式,而带头结点只有1种方式呢?
因为不带头结点声明Node *head 时;C编译器将其自动初始化为N