leetcode - 203. 移除链表元素
题目:
代码:
#include <iostream>
using namespace std;
typedef struct ListNode{
int val;
struct ListNode *next;
}ListNode,*LinkList;
void create(LinkList &head){
int n;
cin>>n;
head = new ListNode;
head->next = NULL;
ListNode *r = head;
for(int i = 0; i < n; i++){
ListNode *p = new ListNode;
cin>>p->val;
p->next = NULL;
r->next = p;
r = p;
}
}
ListNode* removeElements(ListNode* head, int val) {
ListNode *dummy = new ListNode;
dummy->val = -1;
dummy->next = head;
ListNode *h = dummy;
ListNode *pre = h;
h = h->next;
while(h){
if(h->val == val){
pre->next = h->next;
}else{
pre = h;
}
h = h->next;
}
return dummy->next;
}
int main(){
ListNode *head, *res;
int val;
cin>>val;
create(head);
head = head->next;
res = removeElements(head, val);
while(res){
cout<<res->val<<" ";
res = res->next;
}
return 0;
}