在C++单链表操作中,当仅能访问待删除节点且该节点非尾节点时,下列哪个操作可以正确删除该节点并释放其占用的内存?

nx969853 单选题 共 个子题

已知单链表节点定义如下:

struct ListNode {
    int val;
    ListNode *next;
    ListNode(int x) : val(x), next(nullptr) {}
};

现有一个存在于非空单链表中的节点p,我们无法获取该节点的前驱节点,且p并非链表的尾节点。

A

p = p->next; delete p;,将p指向其后继节点后删除p,完成删除操作

B

p->next = p->next->next; delete p;,修改p的next指针后直接删除p,完成删除操作

C

ListNode* temp = p->next; p->val = temp->val; p->next = temp->next; delete temp;,将后继节点的值复制到当前节点,删除后继节点以等价删除原节点

D

delete p; p = nullptr;,直接释放p节点内存并将指针置空,完成删除操作

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