某带头结点的单链表的头指针为head,则判定该链表为非空的条件是?

a head!=null
b head->next!=null

请说出理由

判定该链表为非空的条件是:head->next!=null。

带头节点的情况下,链表空时还会存在一个节点,所以head不为空,head->next为空  不带头节点的情况下,链表空时,没有任何节点,head指向null。

无论是否有头结点,头指针始终指向链表的第一个结点。如果有头结点,头指针就指向头结点。

头结点的作用是使所有链表的头指针非空,并使对单链表的插入、删除操作不需要区分是否为空表或是否在第一个位置进行,从而与其他位置的插入、删除操作一致。


扩展资料:

头结点与链表状态的关系:

防止单链表是空的而设的。当链表为空的时候,带头结点的头指针就指向头结点。如果当链表为空的时候,头结点的指针域的数值为NULL。

方便单链表的特殊操作,插入在表头或者删除第一个结点.这样就保持了单链表操作的统一性!

单链表加上头结点之后,无论单链表是否为空,头指针始终指向头结点,因此空表和非空表的处理也统一了,方便了单链表的操作,也减少了程序的复杂性和出现bug的机会 。

对单链表的多数操作应明确对哪个结点以及该结点的前驱。不带头结点的链表对首元结点、中间结点分别处理等。

而带头结点的链表因为有头结点,首元结点、中间结点的操作相同,从而减少分支,使算法变得简单,流程清晰。

参考资料来源:

百度百科—头结点

百度百科—链表

百度百科—单链表

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-26
a 是不带头节点的单链表为空的判定条件,head为第一个节点,要是他的内容为NULL,则整个链表都没有内容。
b 带头节点的单链表为空的判定条件,带头节点的单链表的头节点head总是不空的,但是他的里面不存储具体的内容。他的下一个节点才是存储内容的开始,若没有下一个节点,则表示该链表没有存储内容。

所以选b本回答被提问者采纳
第2个回答  2019-01-10
head->next==NULL
第3个回答  2019-06-19
head==NULL
相似回答