选择题
数据结构
已知头指针 h 指向一个带头结点的非空单循环链表,结点结构为
其中 next 是指向直接后继结点的指针,p 是尾指针,q 是临时指针。现要删除该链表的第一个元素,正确的语句序列是( )。
查看答案与解析
正确答案:D
正确答案:D删除头结点后一个结点的基本流程为
q = h->next; h->next = q->next; free(q);,即通过指针操作跳过下一个结点后删除该结点。
由于题目中提到了该链表非空,所以可以确定 q = h->next 一定不为空。
但是如果链表中只有一个结点的话,我们还需要在删除该结点后,将尾指针指向头结点的位置,即 if (p == q) p = h;