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

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

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; }

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