题目:3217. 从链表中移除在数组中存在的节点
思路:用哈希表来存nums中的数,这里用数组sta来实现,后续就是链表操作了。
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
class Solution {
public:
ListNode* modifiedList(vector<int>& nums, ListNode* head) {
int sta[100010];
memset(sta,0,sizeof sta);
for(auto x:nums){
sta[x]=1;
}
ListNode *st,*p;
st=new ListNode(0);
p=st;
while(head!=nullptr){
if(sta[head->val]){
head=head->next;
continue;
}
p->next=head;
p=p->next;
head=head->next;
}
p->next=nullptr;
return st->next;
}
};