Skip to content

Commit 97ed666

Browse files
authored
add merge-two-sorted-lists (#66)
1 parent 58201b9 commit 97ed666

File tree

5 files changed

+48
-5
lines changed

5 files changed

+48
-5
lines changed

SUMMARY.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
* [链表](linked-list/README.md)
4949
* [环形链表](linked-list/linked-list-cycle.md)
5050
* [两数相加](linked-list/liang-shu-xiang-jia.md)
51+
* [合并两个有序链表](linked-list/merge-two-sorted-lists.md)
5152
* [](tree/README.md)
5253
* [二叉树的最大深度](tree/maximum-depth-of-binary-tree.md)
5354
* [](graph/README.md)

linked-list/add-two-numbers.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,5 +41,5 @@ func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
4141

4242
## 复杂度分析
4343

44-
- **时间复杂度:** 只遍历了一遍字符串,因此时间复杂度为 $$O(n)$$,其中 $$n$$ 是链表的长度
45-
- **空间复杂度:** 只使用了常数个变量,因此空间复杂度为 $$O(n)$$
44+
- **时间复杂度:** 只遍历了一遍链表,因此时间复杂度为 $$O(n)$$,其中 $$n$$ 是链表的长度
45+
- **空间复杂度:** 空间复杂度为 $$O(n)$$

linked-list/liang-shu-xiang-jia.md

Lines changed: 0 additions & 2 deletions
This file was deleted.

linked-list/linked-list-cycle.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,4 @@ func hasCycle(head *ListNode) bool {
3333
## 复杂度分析
3434

3535
- **时间复杂度:** 只遍历了一遍字符串,因此时间复杂度为 $$O(n)$$,其中 $$n$$ 是链表的长度
36-
- **空间复杂度:** 只使用了常数个变量,因此空间复杂度为 $$O(n)$$
36+
- **空间复杂度:** 空间复杂度为 $$O(n)$$

linked-list/merge-two-sorted-lists.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# 合并两个有序链表
2+
3+
题目链接: [https://leetcode.cn/problems/merge-two-sorted-lists](https://leetcode.cn/problems/merge-two-sorted-lists)
4+
5+
## 解题思路:
6+
7+
1. 同时遍历两个链表,判断哪个链表的元素小,小的元素入结果链表中,并将结果链表以及小的元素所在链表指针均向后移一位
8+
2. 若某一链表为空,则将另一个链表剩余的元素一并合并到结果链表zhong
9+
10+
11+
```go
12+
/**
13+
* Definition for singly-linked list.
14+
* type ListNode struct {
15+
* Val int
16+
* Next *ListNode
17+
* }
18+
*/
19+
func mergeTwoLists(list1 *ListNode, list2 *ListNode) *ListNode {
20+
res:=new(ListNode)
21+
head:=res
22+
for list1!=nil&&list2!=nil{
23+
if list1.Val>list2.Val{
24+
head.Next=list2
25+
list2=list2.Next
26+
}else{
27+
head.Next=list1
28+
list1=list1.Next
29+
}
30+
head=head.Next
31+
}
32+
if list1==nil{
33+
head.Next=list2
34+
}else{
35+
head.Next=list1
36+
}
37+
return res.Next
38+
}
39+
```
40+
41+
## 复杂度分析
42+
43+
- **时间复杂度:** 只遍历了一遍链表,因此时间复杂度为 $$O(n)$$,其中 $$n$$ 是链表的长度
44+
- **空间复杂度:** 空间复杂度为 $$O(n)$$

0 commit comments

Comments
 (0)