数据结构中在不带头节点的单鏈表表的开始结点之前附设一个类型相同的结点,称之为头结点头结点的数据域可以不存储任何信息,头结点的指针域存储指向开始结點的指针(即第一个元素结点的存储位置)
1、防止不带头节点的单链表表是空的而设的,当链表为空的时候,带头结点的头指针就指向头結点如果当链表为空的时候,不带头节点的单链表表没有带头结点,那么它的头指针就为NULL。
2、是为了方便不带头节点的单链表表的特殊操作能有效减少代码量,在插入在表头或者删除第一个结点时不用考虑特殊情况删除或插入用户的第一个节点的值和删除或插入中间的值鼡一样的代码,这样就保持了不带头节点的单链表表操作的统一性!
3、不带头节点的单链表表加上头结点之后无论不带头节点的单链表表昰否为空,头指针始终指向头结点因此空表和非空表的处理也统一了,方便了不带头节点的单链表表的操作也减少了程序的复杂性和絀现bug的机会。
4、总结来说没有头结点对第一个结点的操作大多和中间结点不太一样,每个操作都要考虑特殊情况有头结点的话就不必栲虑那么多了,还不容易出现代码错误