203.Remove Linked List Elements
203.Remove Linked List Elements
难度:Easy
Remove all elements from a linked list of integers that have value val.
Example:
1
Input: 1->2->6->3->4->5->6, val = 6
2
Output: 1->2->3->4->5
Copied!
需要注意一些特殊情况。
1
/**
2
* Definition for singly-linked list.
3
* struct ListNode {
4
* int val;
5
* ListNode *next;
6
* ListNode(int x) : val(x), next(NULL) {}
7
* };
8
*/
9
class Solution {
10
public:
11
ListNode* removeElements(ListNode* head, int val) {
12
while(head && head->val ==val) head=head->next;
13
if(!head ) return NULL;
14
if( !head->next) return head;
15
ListNode* LN=head;
16
while(LN && LN->next)
17
{
18
if(LN->next->val ==val)
19
LN->next =LN->next->next;
20
else
21
LN=LN->next;
22
23
}
24
return head;
25
}
26
};
Copied!
执行用时 :44 ms, 在所有 C++ 提交中击败了60.40%的用户 内存消耗 :10.8MB, 在所有 C++ 提交中击败了92.82%的用户
Copy link