力扣203
在进行链表的增删时,可以设置一个虚拟头结点,使得这个虚拟的头结点指向原有的头结点,此时就可以进行求解了.
代码如下:
class Solution {
public:
ListNode* removeElements(ListNode* head, int val) {
ListNode * Node = new ListNode(NULL); //建立头结点
Node->next = head; //建立头结点
ListNode * cur = Node; //使用一个cur指针来进行遍历
if (cur->next == NULL){
return nullptr;
}
while (cur->next != nullptr){
if(cur->next->val == val){
ListNode * Temp = cur->next;
cur->next=cur->next->next;
delete Temp;
}
else{
cur = cur->next;
}
}
head = Node->next;
delete Node; //记得删除最初建立的虚拟头结点
return head;
}
};