第29009题 单选题
关于C++单链表的节点删除操作,下列说法正确的是?

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

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

现有一个非空单链表,头指针为head,下列关于单链表节点删除的说法正确的是?

A

如果要删除值为target的头节点,仅需将head指针置为nullptr即可

B

若已知要删除的节点指针p且p不是尾节点,可以将p->next的节点值复制到p中,再删除p->next节点,该操作无需遍历链表寻找前驱节点,时间复杂度为O(1)

C

删除单链表的任意节点都无需手动释放被删除节点的内存,C++会自动管理堆内存

D

遍历链表找到值为target的节点后,直接修改该节点的next指针即可完成删除操作

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