class Solution {
public:
ListNode* removeElements(ListNode* head, int val)
{
ListNode* h = new ListNode(0);//这里必须给一个值
h->next = head;
ListNode* c = h;
while (c->next)
{
if (c->next->val == val)c->next = c->next->next;
else c = c->next;
}
return h->next;
}
};
思路:题目看似简单,实则有大坑。因为题目指定删除的节点如果是第一个的话,用常规的删节点思想肯定不行。所以需要在头结点的前面再加一个头结点。处理完之后返回新加的那个头结点就可以了。