题6
题目
Q:在一个单链表中,已知 q 所指结点是 p 所指结点的前驱结点,若在 q 和 p 之间插入结点 s ,则执行 ( ).
A. s->next = p->next; p->next = s;
B. p->next = s->next; s->next = p;
C. q->next = s; s->next = p;
D. p->next = s; s->next = q;
分析
A:如何理解q所指节点是p所指节点的前驱节点这句话
懂了,题目里说了这是一个单链表,也就是不会出现,一个节点被多个节点同时指着

p应该是一个dummy node只是一个地址来作为y的引用,也就是上面的y就是p
那么此时,c选项应该是

而D选项会破坏掉原本单链表的顺序结构,没有实现按照原本的顺序在插入,这就不是所谓的“插入”

解
注意
可能有读者认为选项
实际上,因为本题插入位置的前后结点都有指针指示 (这与前面介绍的插入操作是不同的),所以选项
在此提醒读者在学习过程中一定要多动脑思考, 而不要生搬硬套。