在C++中,若仅持有单链表中某个非尾节点的指针p,无法获取其前驱节点,下列能正确删除该节点的实现是?

tw357653 单选题 共 个子题

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

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

现有一个非空单链表,待删除的节点p不是尾节点且无法直接获取其前驱节点,以下能正确完成节点删除的代码是?

A
void deleteNode(ListNode* p) { delete p; }
B
void deleteNode(ListNode* p) { ListNode* temp = p->next; *p = *temp; delete temp; }
C
void deleteNode(ListNode* p) { p->next = p->next->next; delete p->next; }
D
void deleteNode(ListNode* p) { p->next = nullptr; delete p->next; }
正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧