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

wy782832 单选题 共 个子题
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(若目标节点是头节点则pre为nullptr),若pre为nullptr则更新头指针为原头节点的下一个节点并释放原头节点,否则将pre->next设为目标节点的下一个节点后释放目标节点,该流程可正确完成删除操作

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧