有以下结构体说明和变量定义,如图所示,指针 p,q,r 分别指向一个链表中的三个续结点。
struct node {
int data;
struct node *next;
} *p,*q,*r;
现要将 q 和 r 所指结点的先后位置交换,同时要保持链表的连续,以下程序段中错误的是( )
q->next = r->next; p-> next = r; r->next = q;
p->next = r; q->next = r->next; r->next = q;
q->next = r->next; r->next = q; p->next = r;
r->next = q; q->next = r->next; p->next = r;