GESP C++ 真题 · 逐题精解
首页C++五级真题 › 2024年12月 › 第3题

GESP 2024年12月 C++五级 单选题 第3题

C++五级单选题2024年12月第3题

所属知识点:链表 难度要求:掌握 考频:—

为了方便链表的增删操作,一些算法生成一个虚拟头节点,方便统一删除头节点和其他节点。下面代码实现 了删除链表中值为 val 的节点,横线上应填的最佳代码是( )。
struct LinkedNode {
int val;
LinkedNode* next;
LinkedNode(int val):val(val), next(nullptr){}
};
void removeElements(LinkedNode* head, int val) {
if (head == nullptr) {
return;
}
LinkedNode* cur;
LinkedNode* dummyHead = new LinkedNode(0); //虚拟头节点
________________________________     // 在此处填入代码
while(cur ->next != nullptr) {
if(cur->next->val == val) {
LinkedNode* tmp = cur->next;
cur->next = cur->next->next;
delete tmp;
tmp = nullptr;
}
else {
cur = cur ->next;
}
}
head = dummyHead->next;
delete dummyHead;
dummyHead = nullptr;
}

正确答案:A

题目解析

虚拟头节点:dummyHead->next=head; cur=dummyH………

完整解析为会员内容二级及以上的逐题精讲需开通 VIP。一级解析全部免费。前往 GESPPASS 解锁

想系统刷完 GESP C++ 1~8 级真题,并查看每道题的逐题精讲?

进入 GESPPASS 开始练习