设指针q指向单链表中结点 A,指针p指向单链表中结点 A的后继结点B,指针s指向被 插入的结点X,则在结点A和结点B插入结点X的操作序列为( )
A.
s->next=p->next ; p->next=-s ;
B.
q->next=s ; s->next=p ;
C.
p->next=s->next ; s->next=p ;
D.
p->next=s ; s->next=q ;
这个A选项怎么不可以选择
A得改成s->next = p或s->next = q->next才对
A选项中应为p->next=s, 而不是p->next=-s,因此A选项有错误,不能选择。
参考GPT和自己的思路:对于这个问题,正确的操作序列应当是B选项:q->next=s ; s->next=p ;
因为需要先将结点X插入到结点A后面,所以需要将q->next指向s,然后将s->next指向p,即可完成在结点A和结点B之间插入结点X的操作。
A选项的操作序列是错误的,因为将s->next指向p->next之后,p节点的next指针已经被改变了,应该指向s原来所指向的下一个节点,而不是被赋值为负数。
C选项和D选项的操作序列也是错误的,都没有将s插入到A和B之间,而是插入到了B的后面或者A的前面。
将小于0的节点利用后插法插入Lb中,pre保存着pa的前驱,当节点小于0时,进行pre->next=pa->next,则删除了小于0的元素。当节点大于0时,进行pra=pa,pa=pa->next,pre保存着pa的前驱。**