首页 > 试题广场 > 在一个单链表中,q的前一个节点为p,删除q所指向节点,则执行()。
[单选题]
在一个单链表中,q的前一个节点为p,删除q所指向节点,则执行()。
  • delete q
  • q->next=p->next;delete p;
  • p->next=q->next;delete p;
  • p->next=q->next;delete q;
  • delete p;
  • q->next=p->next;delete q

29个回答

添加回答
推荐
答案:D
单链表中删除节
   查看全部
编辑于 2015-01-30 15:16:56 回复(3)
看到有好几位朋友不理解为什么删除q所指向的节点不是删除q的下一个节点,看看下图应该就比较清楚了,q所指向的节点。

编辑于 2015-08-19 13:32:55 回复(2)
d! 先连接,再删除
发表于 2017-05-21 10:41:59 回复(0)
先把预删节点的后继处理好,再删除该节点。D
发表于 2016-10-07 23:28:48 回复(0)
注意看答案呀,不要随便选,一不小心就错了

发表于 2016-05-02 17:21:09 回复(1)
d
发表于 2016-03-18 01:23:56 回复(0)
D:
发表于 2015-08-21 09:43:28 回复(0)
D
发表于 2015-08-19 21:57:08 回复(0)
jvm头像 jvm
p->next 是q,删除q所指向的节点也就是q->next,那么应该是q->next=q->next->next;delete q->next.
所以无解
发表于 2015-08-17 22:06:34 回复(0)
删除q所指向的节点,q所指向的不应该是q的前一个节点吗?怎么是q本身呢。。。
发表于 2015-08-09 17:37:03 回复(3)
D
发表于 2015-07-25 22:01:00 回复(0)
D
p->next = p->next
p的指针域指向q的后一个节点(即要删除的节点)这样q节点被孤立出来,再释放q节点,这样q节点就被删除了

发表于 2015-07-19 21:24:19 回复(0)
D
发表于 2015-06-30 10:30:11 回复(0)
D
发表于 2015-06-26 01:14:35 回复(0)
D 必须先保存删除节点中下一节点地址,把他存放在p的链域中 所以为 p->next = q->next; delete p;
发表于 2015-06-19 15:40:19 回复(0)
都不对
假设是pqrs,q所指向节点就是删除r
没有答案啊
发表于 2015-05-19 20:54:58 回复(1)
D
发表于 2015-05-13 18:39:07 回复(0)
D. 原则是先回收后继结点,否则可能会导致丢失.
发表于 2015-04-20 15:46:19 回复(0)
发表于 2015-04-09 11:11:10 回复(0)
D 删除q前应将与q相连的前一个节点的后继指向q的后继,以免直接删除q导致单链表断开
发表于 2015-04-07 09:34:12 回复(0)
D 在链表操作里,p->next=q->next表示将p->next指向了q->next,也就是跳过了q,由于节点是动态开辟的,所以用delete进行释放
发表于 2015-04-05 10:37:55 回复(0)
牛客网,程序员必备求职神器
QQ群:169195721
微 信:www_nowcoder_com 关注
微 博:牛客网 关注

扫一扫,把题目装进口袋