问题
单项选择题
假定已建立以下链表结构,且指针p和q已指向如下图所示的结点:
则以下选项中可将q所指结点从链表中删除并释放该结点的语句组是( )。
A) (*p) .next=(*q) .next; free(p); B) p=q->next; free(q);
C) p=q; free(q); D) p->next=q->next; free(q);
答案
参考答案:D
解析: 本题考查的是在链表中删除结点的操作。在本题中,指针p指向结点a,q指向结点b。要把结点b删除,就应该首先让结点a的指针域指向结点c,即p→next=q→next,也可以写成(*p).next=(*q).next,然后释放结点b,即free(q)。所以,4个选项中,只有D)满足题意。