Skip to content

Commit ad25196

Browse files
authored
203 solved. (#52)
1 parent 009f159 commit ad25196

File tree

4 files changed

+62
-0
lines changed

4 files changed

+62
-0
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ continually updating 😃.
6565
* [83. Remove Duplicates from Sorted List](src/0083_remove_duplicates_from_sorted_list/rdfsl.go)
6666
* [86. Partition List](src/0086_partition_list/partition_list.go)   *`two pointers`*
6767
* [92. Reverse Linked List II](src/0092_reverse_linked_list_2/reverse_linked_list2.go)
68+
* [203. Remove Linked List Elements](src/0203_remove_linked_list_elements/remove_linked_list_elements.go)
6869

6970
### Dynamic Programming
7071
* [62. Unique Paths](./src/0062_unique_paths/unique_paths.go)   *`array`*
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/*
2+
203. Remove Linked List Elements
3+
https://leetcode.com/problems/remove-linked-list-elements/
4+
5+
Remove all elements from a linked list of integers that have value val.
6+
*/
7+
// time: 2019-01-07
8+
9+
package rlle
10+
11+
// ListNode Definition for singly-linked list.
12+
type ListNode struct {
13+
Val int
14+
Next *ListNode
15+
}
16+
17+
// time complexity: O(n)
18+
// space complexity: O(1)
19+
func removeElements(head *ListNode, val int) *ListNode {
20+
dummyHead := &ListNode{}
21+
dummyHead.Next = head
22+
23+
cur := dummyHead
24+
25+
for cur.Next != nil {
26+
if val == cur.Next.Val {
27+
cur.Next = cur.Next.Next
28+
} else {
29+
cur = cur.Next
30+
}
31+
}
32+
return dummyHead.Next
33+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package rlle
2+
3+
import (
4+
"reflect"
5+
"testing"
6+
)
7+
8+
func TestRemoveElements(t *testing.T) {
9+
head := createSinglyLinkedList([]int{1, 2, 6, 3, 4, 5, 6})
10+
val := 6
11+
expected := createSinglyLinkedList([]int{1, 2, 3, 4, 5})
12+
13+
if res := removeElements(head, val); !reflect.DeepEqual(res, expected) {
14+
t.Errorf("expected %v, got %v", expected, res)
15+
}
16+
}
17+
18+
func createSinglyLinkedList(nums []int) *ListNode {
19+
head := &ListNode{}
20+
cur := head
21+
22+
for _, num := range nums {
23+
cur.Next = &ListNode{Val: num}
24+
cur = cur.Next
25+
}
26+
return head.Next
27+
}

src/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
|0167|[Two Sum II - Input array is sorted](./0167_two_sum2/two_sum2.go)|Easy|*`对撞指针(双索引)`*|
6565
|0198|[House Robber](./0198_house_robber/house_robber.go)|Easy|*`memory search;`* *`dynamic programming`*|
6666
|0200|[200. Number of Islands](0200_number_of_island/number_of_island.go)|Medium|*`dfs;`* *`bfs`*|
67+
|0203|[203. Remove Linked List Elements](0203_remove_linked_list_elements/remove_linked_list_elements.go)|Easy|*`linked list`*|
6768
|0209|[Minimum Size Subarray Sum](./0209_minimum_size_subarray_sum/minimum_size_subarray_sum.go)|Medium|*`sliding window`*|
6869
|0215|[215. Kth Largest Element in an Array](0215_kth_largest_element_in_an_array/kthleiaa.go)|Medium|*`sort`*|
6970
|0226|[Invert Binary Tree](./0226_invert_binary_tree/invert_binary_tree.go)|Easy|*`recursion; `* *`binary tree`*|

0 commit comments

Comments
 (0)