Topic:
Remove all elements from a linked list of integers, that has value val.
Example
Given: 1---2--and 6---3---4---5, val = 6
Return: 1--2--and 3--4--5
Topic Answer:
The topic is very simple to remove the node that appears in the list with a value of Val, and returns the linked list after it is deleted.
1, to add a virtual head node for the list, thereby reducing the number of redundant judgment conditions, very simple.
2, at the end of the code, you need to be careful to release the space of the virtual head node you are applying for.
Code:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode (int x): Val (x), Next (NULL) {}
* };
*/
Class Solution {
Public
listnode* removeelements (listnode* head, int val) {
ListNode *head = new ListNode (-1);
Head, next = head;
ListNode *p = Head;
ListNode *q = Head, Next;
while (q! = NULL)
{
while ((q! = NULL) && (q, val! = val))
{
p = p and next;
Q = q-Next;
}
if (q = = NULL)
{
Break
}
if (q, val = = val)
{
ListNode *r = q->next;
P-Next = R;
Delete q;
Q = r;
}
}
p = Head, Next;
Delete Head;
return p;
}
};
Leetcode title: Remove Linked List Elements