Skip to content

Commit

Permalink
feat: add golang solution for lcof problem 22-25
Browse files Browse the repository at this point in the history
  • Loading branch information
hzliangbin committed Jul 17, 2020
1 parent df2d452 commit 0b88964
Show file tree
Hide file tree
Showing 6 changed files with 108 additions and 0 deletions.
22 changes: 22 additions & 0 deletions lcof/面试题22. 链表中倒数第k个节点/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,29 @@ var getKthFromEnd = function(head, k) {
};
```

### Go

```go
func getKthFromEnd(head *ListNode, k int) *ListNode {
tmp := head
for tmp != nil && k > 0{
tmp = tmp.Next
k--
}
slow := head
fast := tmp
for fast != nil {
fast = fast.Next
slow = slow.Next
}
return slow
}
```



### ...

```
```
14 changes: 14 additions & 0 deletions lcof/面试题22. 链表中倒数第k个节点/Solution.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
func getKthFromEnd(head *ListNode, k int) *ListNode {
tmp := head
for tmp != nil && k > 0{
tmp = tmp.Next
k--
}
slow := head
fast := tmp
for fast != nil {
fast = fast.Next
slow = slow.Next
}
return slow
}
22 changes: 22 additions & 0 deletions lcof/面试题24. 反转链表/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,29 @@ var reverseList = function(head) {
};
```

### Go

```Go
func reverseList(head *ListNode) *ListNode {
if head == nil ||head.Next == nil {
return head
}
dummyHead := &ListNode{}
cur := head
for cur != nil {
tmp := cur.Next
cur.Next = dummyHead.Next
dummyHead.Next = cur
cur = tmp
}
return dummyHead.Next
}
```



### ...

```
```
14 changes: 14 additions & 0 deletions lcof/面试题24. 反转链表/Solution.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
func reverseList(head *ListNode) *ListNode {
if head == nil ||head.Next == nil {
return head
}
dummyHead := &ListNode{}
cur := head
for cur != nil {
tmp := cur.Next
cur.Next = dummyHead.Next
dummyHead.Next = cur
cur = tmp
}
return dummyHead.Next
}
22 changes: 22 additions & 0 deletions lcof/面试题25. 合并两个排序的链表/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,29 @@ var mergeTwoLists = function(l1, l2) {
};
```

### Go

```go
func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode {
if l1 == nil {
return l2
}
if l2 == nil {
return l1
}
if l1.Val <= l2.Val {
l1.Next = mergeTwoLists(l1.Next,l2)
return l1
}
l2.Next = mergeTwoLists(l1, l2.Next)
return l2
}
```



### ...

```
```
14 changes: 14 additions & 0 deletions lcof/面试题25. 合并两个排序的链表/Solution.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode {
if l1 == nil {
return l2
}
if l2 == nil {
return l1
}
if l1.Val <= l2.Val {
l1.Next = mergeTwoLists(l1.Next,l2)
return l1
}
l2.Next = mergeTwoLists(l1, l2.Next)
return l2
}

0 comments on commit 0b88964

Please sign in to comment.