Skip to content

Commit 438afdf

Browse files
author
Shuo
authored
Merge pull request #393 from openset/develop
Update: Merge Two Sorted Lists
2 parents 7f0380b + 1c63f4d commit 438afdf

File tree

2 files changed

+15
-18
lines changed

2 files changed

+15
-18
lines changed

problems/merge-two-sorted-lists/merge_two_sorted_lists.go

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,22 +10,14 @@ import . "github.com/openset/leetcode/internal/kit"
1010
* }
1111
*/
1212
func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode {
13-
l := &ListNode{}
14-
t := l
15-
for l1 != nil && l2 != nil {
16-
if l1.Val < l2.Val {
17-
t.Next = l1
18-
l1 = l1.Next
19-
} else {
20-
t.Next = l2
21-
l2 = l2.Next
22-
}
23-
t = t.Next
24-
}
2513
if l1 == nil {
26-
t.Next = l2
27-
} else {
28-
t.Next = l1
14+
return l2
15+
} else if l2 == nil {
16+
return l1
17+
}
18+
if l1.Val > l2.Val {
19+
l1, l2 = l2, l1
2920
}
30-
return l.Next
21+
l1.Next = mergeTwoLists(l1.Next, l2)
22+
return l1
3123
}

problems/merge-two-sorted-lists/merge_two_sorted_lists_test.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,13 @@ func TestMergeTwoLists(t *testing.T) {
3232
},
3333
{
3434
l1: []int{1, 2, 3},
35-
l2: []int{1, 2, 3},
36-
expected: []int{1, 1, 2, 2, 3, 3},
35+
l2: nil,
36+
expected: []int{1, 2, 3},
37+
},
38+
{
39+
l1: []int{1, 2, 3, 8, 16},
40+
l2: []int{1, 2, 3, 10, 12, 24},
41+
expected: []int{1, 1, 2, 2, 3, 3, 8, 10, 12, 16, 24},
3742
},
3843
}
3944
for _, tc := range tests {

0 commit comments

Comments
 (0)