函数 removeElements 删除单链表中所有结点值等于 val 的结点,并返回新的头结点,其中链表头结点为 head ,则横线处填写( )。
// 结点结构体
struct Node {
int val;
Node* next;
Node() : val(0), next(nullptr) {}
Node(int x) : val(x), next(nullptr) {}
Node(int x, Node *next) : val(x), next(next) {}
};
Node* removeElements(Node* head, int val) {
Node dummy(0, head); // 哑结点,统一处理头结点
Node* cur = &dummy;
while (cur->next) {
if (cur->next->val == val) {
_______________________ // 在此填入代码
}
else {
cur = cur->next;
}
}
return dummy.next;
}
- A. 1 Node* del = cur; 2 cur = del->next; 3 delete del;
- B. 1 Node* del = cur->next; 2 cur->next = del; 3 delete del;
- C. 1 Node* del = cur->next; 2 cur->next = del->next; 3 delete del;
- D. 1 Node* del = cur->next; 2 delete del; 3 cur->next = del->next;
正确答案:C