Skip to content

Commit 7b5bb53

Browse files
updated "203. Remove Linked List Elements"
1 parent f277559 commit 7b5bb53

File tree

3 files changed

+95
-0
lines changed

3 files changed

+95
-0
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ Solutions from [LeetCode](https://leetcode.com) on Dart.
1212
| 136. Single Number | [Link](https://leetcode.com/problems/single-number/) | [Link](./lib/easy/single_number.dart) |
1313
| 144. Binary Tree Preorder Traversal | [Link](https://leetcode.com/problems/binary-tree-preorder-traversal/) | [Link](./lib/easy/binary_tree_preorder_traversal.dart) |
1414
| 169. Majority Element | [Link](https://leetcode.com/problems/majority-element/) | [Link](./lib/easy/majority_element.dart) |
15+
| 203. Remove Linked List Elements | [Link](https://leetcode.com/problems/remove-linked-list-elements/) | [Link](./lib/easy/remove_linked_list_elements.dart) |
1516
| 217. Contains Duplicate | [Link](https://leetcode.com/problems/contains-duplicate/) | [Link](./lib/easy/contains_duplicate.dart) |
1617
| 226. Invert Binary Tree | [Link](https://leetcode.com/problems/invert-binary-tree/) | [Link](./lib/easy/invert_binary_tree.dart) |
1718
| 342. Power of Four | [Link](https://leetcode.com/problems/power-of-four/) | [Link](./lib/easy/power_of_four.dart) |
+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
class Solution {
2+
ListNode? removeElements(ListNode? head, int val) {
3+
while (head != null && head.val == val) {
4+
head = head.next;
5+
}
6+
var curr = head;
7+
while (curr != null && curr.next != null) {
8+
if (curr.next!.val == val) {
9+
curr.next = curr.next!.next;
10+
} else {
11+
curr = curr.next;
12+
}
13+
}
14+
return head;
15+
}
16+
}
17+
18+
class ListNode {
19+
int val;
20+
ListNode? next;
21+
22+
ListNode([this.val = 0, this.next]);
23+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
import 'package:leetcode_dart/easy/remove_linked_list_elements.dart';
2+
import 'package:test/test.dart';
3+
4+
void main() {
5+
group(
6+
'Example tests',
7+
() {
8+
final rlle = Solution();
9+
test(
10+
'[1, 2, 3, 4, 5]',
11+
() => expect(
12+
true,
13+
_areEqual(
14+
_fromList([1, 2, 3, 4, 5]),
15+
rlle.removeElements(
16+
_fromList([1, 2, 6, 3, 4, 5, 6]),
17+
6,
18+
),
19+
),
20+
),
21+
);
22+
test(
23+
'[]',
24+
() => expect(
25+
true,
26+
_areEqual(
27+
null,
28+
rlle.removeElements(
29+
null,
30+
1,
31+
),
32+
),
33+
),
34+
);
35+
test(
36+
'[]',
37+
() => expect(
38+
true,
39+
_areEqual(
40+
null,
41+
rlle.removeElements(
42+
_fromList([7, 7, 7, 7]),
43+
7,
44+
),
45+
),
46+
),
47+
);
48+
},
49+
);
50+
}
51+
52+
ListNode _fromList(List<int> list) {
53+
final head = ListNode(list.first);
54+
var p = head;
55+
for (int i = 1; i < list.length; i++) {
56+
p.next = ListNode(list[i]);
57+
p = p.next!;
58+
}
59+
return head;
60+
}
61+
62+
bool _areEqual(ListNode? f, ListNode? s) {
63+
while (f != null && s != null) {
64+
if (f.val != s.val) {
65+
return false;
66+
}
67+
f = f.next;
68+
s = s.next;
69+
}
70+
return f == null && s == null;
71+
}

0 commit comments

Comments
 (0)