203. remove list elements

Ideas: Join the head node, all is well done. 

struct ListNode {
      int val;
      ListNode *next;
     ListNode(int x) : val(x), next(NULL) {}
	 ListNode() :next(NULL) {}
  };

class Solution {
public:
	ListNode* removeElements(ListNode* head, int val) {
		ListNode *pre,*r,*p,*t;
		t = new ListNode();
		t->next = head;
		pre = t;
		p = pre->next;
		while (p)
		{
			if (p->val == val)
			{
				r = p;
				pre->next = p->next;
				p = p->next;
				delete r;
			}
			else
			{
				pre = p;
				p = p->next;
			}
		}
		head = t->next;
		return head;
	}
};

 

Published 114 original articles · won praise 1 · views 4649

Guess you like

Origin blog.csdn.net/weixin_40823740/article/details/103949448