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