单选题

有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中的三个连续结点。

struct node {

int data;

node *next;

} *p, *q, *r;

现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下程序段中错误的是( )。

A

q->next = r->next; p->next = r; r->next = q;

B

p->next = r; q->next = r->next; r->next = q;

C

q->next = r->next; r->next = q; p->next = r;

D

r->next = q; q->next = r->next; p->next = r;

赣ICP备20007335号-2