Skip to content

Commit 6717751

Browse files
authored
feat: add swift implementation to lcof problem: No.25 (doocs#2892)
1 parent 10bbe01 commit 6717751

File tree

2 files changed

+71
-0
lines changed

2 files changed

+71
-0
lines changed

lcof/面试题25. 合并两个排序的链表/README.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,44 @@ public class Solution {
311311
}
312312
```
313313

314+
#### Swift
315+
316+
```swift
317+
/* public class ListNode {
318+
* var val: Int
319+
* var next: ListNode?
320+
* init(_ val: Int) {
321+
* self.val = val
322+
* self.next = nil
323+
* }
324+
* }
325+
*/
326+
327+
class Solution {
328+
func mergeTwoLists(_ l1: ListNode?, _ l2: ListNode?) -> ListNode? {
329+
let dummy = ListNode(0)
330+
var cur: ListNode? = dummy
331+
var l1 = l1
332+
var l2 = l2
333+
334+
while let l1Node = l1, let l2Node = l2 {
335+
if l1Node.val <= l2Node.val {
336+
cur?.next = l1Node
337+
l1 = l1Node.next
338+
} else {
339+
cur?.next = l2Node
340+
l2 = l2Node.next
341+
}
342+
cur = cur?.next
343+
}
344+
345+
cur?.next = l1 ?? l2
346+
347+
return dummy.next
348+
}
349+
}
350+
```
351+
314352
<!-- tabs:end -->
315353

316354
<!-- solution:end -->
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/* public class ListNode {
2+
* var val: Int
3+
* var next: ListNode?
4+
* init(_ val: Int) {
5+
* self.val = val
6+
* self.next = nil
7+
* }
8+
* }
9+
*/
10+
11+
class Solution {
12+
func mergeTwoLists(_ l1: ListNode?, _ l2: ListNode?) -> ListNode? {
13+
let dummy = ListNode(0)
14+
var cur: ListNode? = dummy
15+
var l1 = l1
16+
var l2 = l2
17+
18+
while let l1Node = l1, let l2Node = l2 {
19+
if l1Node.val <= l2Node.val {
20+
cur?.next = l1Node
21+
l1 = l1Node.next
22+
} else {
23+
cur?.next = l2Node
24+
l2 = l2Node.next
25+
}
26+
cur = cur?.next
27+
}
28+
29+
cur?.next = l1 ?? l2
30+
31+
return dummy.next
32+
}
33+
}

0 commit comments

Comments
 (0)