头指针:指向链表的第一个节点(或者说是链表中第一个结点的存储位置叫做头指针),如果链表有头结点,则是指向头结点的指针 。
在访问链表时,只能顺序访问,我们要先找到链表的头指针,因为它是指向第一个节点的指针,只有找到第一个节点之后 才能通过它访问后续节点,之后的每一个结点,其实就是上一个的后继指针指向的位置。
头指针具有标识作用,所以常用链表名称命名头指针。
无论链表是否为空,头指针均不为空。头指针是链表的必要元素。
头结点:是为了操作的统一与方便而设立的,放在第一个元素结点之前,其数据域一般无意义(当然有些情况下也可存放链表的长度、用做监视哨等等)。所以头结点不是链表必须要素。
含有头结点的链表表示如下图:
判断链表是否为空: head->next ==NULL ? 也就是说从有效节点开始判断是否为空。
没有头结点的单链表表示如下:
判断链表是否为空:head == NULL ?