问题
单项选择题
有以下结构体说明和变量定义,如下图所示,指针p、q、r分别指向一个链表中的三个连续结点。
struct node
int data;
struct node *next;
*p,*q,*r;
现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是( )。
答案
参考答案:A
解析: 对于选项A),执行r->next=q后,r->next指向了q。此时q->next=r-> next就相当于q->next=q;所以q的下一个结点指向了自己,而不是指向原来r的下一个结点,所以选项A)错误。