leetcode题目
Remove Linked List Elements
Remove all elements from a linked list of integers that have value val.
Example
Given: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6
Return: 1 --> 2 --> 3 --> 4 --> 5
C++实现思路:简单的链表删除操作,注意一些head为空或者第一个元素的val值与给定的val相同的情况,设置一个合适的终止条件。
实现代码:
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {} //初始化列表
}; //定义node结构体
class Solution {
public:
ListNode* removeElements(ListNode* head, int val) { //输入头指针以及方差
ListNode* temp=head; //C++指针勿忘初始化
ListNode* pro=head;
while(head)
{
if(temp->val==val)
{
if(temp==head)
{
head=head->next;
temp->next=NULL;
temp=head;
pro=head;
}
else
{
while(pro->next!=temp)
pro=pro->next;
pro->next=temp->next;
temp->next=NULL;
temp=pro->next;
pro=head;
}
}
else
temp=temp->next;
if(temp==NULL)
{
break;
}
}
return head;
}
};