某带头结点的单链表的头指针为head,则判定该链表为非空的条件是?
2022-12-11 · 百度认证:北京惠企网络技术有限公司官方账号
判定该链表为非空的条件是:head->next!=null。
带头节点的情况下,链表空时还会存在一个节点,所以head不为空,head->next为空 不带头节点的情况下,链表空时,没有任何节点,head指向null。
无论是否有头结点,头指针始终指向链表的第一个结点。如果有头结点,头指针就指向头结点。
头结点的作用是使所有链表的头指针非空,并使对单链表的插入、删除操作不需要区分是否为空表或是否在第一个位置进行,从而与其他位置的插入、删除操作一致。
扩展资料:
头结点与链表状态的关系:
防止单链表是空的而设的。当链表为空的时候,带头结点的头指针就指向头结点。如果当链表为空的时候,头结点的指针域的数值为NULL。
方便单链表的特殊操作,插入在表头或者删除第一个结点.这样就保持了单链表操作的统一性!
单链表加上头结点之后,无论单链表是否为空,头指针始终指向头结点,因此空表和非空表的处理也统一了,方便了单链表的操作,也减少了程序的复杂性和出现bug的机会 。
对单链表的多数操作应明确对哪个结点以及该结点的前驱。不带头结点的链表对首元结点、中间结点分别处理等。
而带头结点的链表因为有头结点,首元结点、中间结点的操作相同,从而减少分支,使算法变得简单,流程清晰。
参考资料来源: