单选题:已知头指针 `h` 指向一个带头结点的非空单循环链表,结点结构为 `data | next`,其中 `next` 是指向直接后继
已知头指针 `h` 指向一个带头结点的非空单循环链表,结点结构为 `data | next`,其中 `next` 是指向直接后继结点的指针,`p` 是尾指针,`q` 是临时指针。现要删除该链表的第一个元素,正确的语句序列是:
@[D](2)
A. `h->next=h->next->next; q=h->next; free(q);`
B. `q=h->next; h->next=h->next->next; free(q);`
C. `q=h->next; h->next=q->next; if (p!=q) p=h; free(q);`
D. `q=h->next; h->next=q->next; if (p==q) p=h; free(q);`
A.`h->next=h->next->next; q=h->next; free(q);`
B.`q=h->next; h->next=h->next->next; free(q);`
C.`q=h->next; h->next=q->next; if (p!=q) p=h; free(q);`
D.`q=h->next; h->next=q->next; if (p==q) p=h; free(q);`
答案:D
@[D](2)
A. `h->next=h->next->next; q=h->next; free(q);`
B. `q=h->next; h->next=h->next->next; free(q);`
C. `q=h->next; h->next=q->next; if (p!=q) p=h; free(q);`
D. `q=h->next; h->next=q->next; if (p==q) p=h; free(q);`
A.`h->next=h->next->next; q=h->next; free(q);`
B.`q=h->next; h->next=h->next->next; free(q);`
C.`q=h->next; h->next=q->next; if (p!=q) p=h; free(q);`
D.`q=h->next; h->next=q->next; if (p==q) p=h; free(q);`
答案:D