203. 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
題目大意:
删除連結清單中全部的目标元素。
代碼如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<code>/**</code>
<code> </code><code>* Definition for singly-linked list.</code>
<code> </code><code>* struct ListNode {</code>
<code> </code><code>* int val;</code>
<code> </code><code>* ListNode *next;</code>
<code> </code><code>* ListNode(int x) : val(x), next(NULL) {}</code>
<code> </code><code>* };</code>
<code> </code><code>*/</code>
<code>class</code> <code>Solution {</code>
<code>public</code><code>:</code>
<code> </code><code>ListNode* removeElements(ListNode* head, </code><code>int</code> <code>val) {</code>
<code> </code><code>while</code><code>(head!=NULL && head->val == val)</code>
<code> </code><code>head = head->next;</code>
<code> </code><code>if</code><code>(head == NULL)</code>
<code> </code><code>return</code> <code>NULL;</code>
<code> </code><code>ListNode * p = head->next;</code>
<code> </code><code>ListNode * q = head;</code>
<code> </code><code>while</code><code>(p)</code>
<code> </code><code>{</code>
<code> </code><code>if</code><code>(p->val != val)</code>
<code> </code><code>{</code>
<code> </code><code>q->next = p;</code>
<code> </code><code>q = p;</code>
<code> </code><code>}</code>
<code> </code><code>else</code>
<code> </code><code>q->next = NULL;</code>
<code> </code><code>p = p->next;</code>
<code> </code><code>}</code>
<code> </code><code>return</code> <code>head;</code>
<code> </code><code>}</code>
<code>};</code>
<code></code>
本文轉自313119992 51CTO部落格,原文連結:http://blog.51cto.com/qiaopeng688/1837338