Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit a2c7603

Browse files
authored
206 solved. (#53)
1 parent ad25196 commit a2c7603

File tree

5 files changed

+86
-0
lines changed

5 files changed

+86
-0
lines changed

‎Makefile‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ GOBUILD=$(GOCMD) build
44
GOCLEAN=$(GOCMD) clean
55
GOTEST=$(GOCMD) test
66
GOGET=$(GOCMD) get
7+
GOFMT=$(GOCMD) fmt
78

89
test:
910
@echo "unit test"
@@ -12,3 +13,7 @@ test:
1213
clean:
1314
@echo "clean test cache"
1415
$(GOCLEAN) -testcache
16+
17+
fmt:
18+
@echo "fmt code"
19+
$(GOFMT) ./...

‎README.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ continually updating 😃.
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)
6868
* [203. Remove Linked List Elements](src/0203_remove_linked_list_elements/remove_linked_list_elements.go)
69+
* [206. Reverse Linked List](src/0206_reverse_linked_list/reverse_linked_list.go)
6970

7071
### Dynamic Programming
7172
* [62. Unique Paths](./src/0062_unique_paths/unique_paths.go)   *`array`*
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
/*
2+
206. Reverse Linked List
3+
https://leetcode.com/problems/reverse-linked-list/
4+
5+
Reverse a singly linked list.
6+
*/
7+
// time: 2019年01月07日
8+
9+
package rll
10+
11+
// ListNode Definition for singly-linked list.
12+
type ListNode struct {
13+
Val int
14+
Next *ListNode
15+
}
16+
17+
// recursive
18+
// time complexity: O(n)
19+
// space complexity: O(n)
20+
func reverseList(head *ListNode) *ListNode {
21+
if head == nil || head.Next == nil {
22+
return head
23+
}
24+
25+
tail := reverseList(head.Next)
26+
head.Next.Next = head
27+
head.Next = nil
28+
return tail
29+
}
30+
31+
// iterative
32+
// time complexity: O(n)
33+
// space complexity: O(1)
34+
func reverseList1(head *ListNode) *ListNode {
35+
var (
36+
pre *ListNode
37+
cur = head
38+
)
39+
for cur != nil {
40+
next := cur.Next
41+
cur.Next = pre
42+
pre = cur
43+
cur = next
44+
}
45+
return pre
46+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package rll
2+
3+
import (
4+
"reflect"
5+
"testing"
6+
)
7+
8+
func TestReverseList(t *testing.T) {
9+
head := createSinglyLinkedList([]int{1, 2, 3, 4, 5})
10+
expected := createSinglyLinkedList([]int{5, 4, 3, 2, 1})
11+
if res := reverseList(head); !reflect.DeepEqual(res, expected) {
12+
t.Errorf("expected %v, got %v", expected, res)
13+
}
14+
}
15+
16+
func TestReverseList1(t *testing.T) {
17+
head := createSinglyLinkedList([]int{1, 2, 3, 4, 5})
18+
expected := createSinglyLinkedList([]int{5, 4, 3, 2, 1})
19+
if res := reverseList1(head); !reflect.DeepEqual(res, expected) {
20+
t.Errorf("expected %v, got %v", expected, res)
21+
}
22+
}
23+
24+
func createSinglyLinkedList(nums []int) *ListNode {
25+
head := &ListNode{}
26+
cur := head
27+
28+
for _, num := range nums {
29+
cur.Next = &ListNode{Val: num}
30+
cur = cur.Next
31+
}
32+
return head.Next
33+
}

‎src/README.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
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`*|
6767
|0203|[203. Remove Linked List Elements](0203_remove_linked_list_elements/remove_linked_list_elements.go)|Easy|*`linked list`*|
68+
|0206|[206. Reverse Linked List](0206_reverse_linked_list/reverse_linked_list.go)|Easy|*`linked list`*|
6869
|0209|[Minimum Size Subarray Sum](./0209_minimum_size_subarray_sum/minimum_size_subarray_sum.go)|Medium|*`sliding window`*|
6970
|0215|[215. Kth Largest Element in an Array](0215_kth_largest_element_in_an_array/kthleiaa.go)|Medium|*`sort`*|
7071
|0226|[Invert Binary Tree](./0226_invert_binary_tree/invert_binary_tree.go)|Easy|*`recursion; `* *`binary tree`*|

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /