第29017题 单选题
在C++中实现单链表节点删除操作时,下列描述正确的是?

已知单链表节点结构体定义为struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(nullptr) {} };,现有一个非空不带头节点的单链表,若要删除值为target的节点,以下关于删除操作的说法正确的是?

A

直接遍历找到目标节点后,执行delete target_node;即可完成正确删除

B

先找到目标节点的前驱节点pre,将pre->next = target_node->next,再执行delete target_node;,该操作可正确删除任意位置的目标节点

C

若目标节点是头节点,则直接将头指针指向head->next,再执行delete head;即可完成删除;若为其他节点则按B的操作处理

D

先遍历找到目标节点的前驱节点pre(若目标节点是头节点则prenullptr),若prenullptr则更新头指针为原头节点的下一个节点并释放原头节点,否则将pre->next设为目标节点的下一个节点后释放目标节点,该流程可正确完成删除操作

程序运行统计
暂无判题统计
提交0次 正确率0.00%
答案解析