第29022题 单选题
已知单链表的非尾节点指针p(无法访问链表头节点),以下哪种C++代码可以正确删除该节点?

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

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

现需要删除指针p指向的非尾节点,且无法获取该节点的前驱节点,下列哪个代码实现是正确的?

A
delete p;
B
p->next = p->next->next;
delete p;
C
p->val = p->next->val;
ListNode* temp = p->next;
p->next = temp->next;
delete temp;
D
ListNode* temp = p;
while(temp->next != nullptr) {
    temp->val = temp->next->val;
    temp = temp->next;
}
delete temp;
程序运行统计
暂无判题统计
提交0次 正确率0.00%
答案解析