mirror of
https://gitlab.com/mfocko/LeetCode.git
synced 2024-11-09 15:59:06 +01:00
43 lines
1.1 KiB
Swift
43 lines
1.1 KiB
Swift
|
/**
|
||
|
* Definition for singly-linked list.
|
||
|
* public class ListNode {
|
||
|
* public var val: Int
|
||
|
* public var next: ListNode?
|
||
|
* public init() { self.val = 0; self.next = nil; }
|
||
|
* public init(_ val: Int) { self.val = val; self.next = nil; }
|
||
|
* public init(_ val: Int, _ next: ListNode?) { self.val = val; self.next = next; }
|
||
|
* }
|
||
|
*/
|
||
|
class Solution {
|
||
|
func mergeTwoLists(_ list1: ListNode?, _ list2: ListNode?) -> ListNode? {
|
||
|
var list1 = list1
|
||
|
var list2 = list2
|
||
|
|
||
|
let head = ListNode()
|
||
|
|
||
|
var node: ListNode? = head
|
||
|
while list1 != nil && list2 != nil {
|
||
|
if list1!.val < list2!.val {
|
||
|
node!.next = list1
|
||
|
node = node!.next
|
||
|
|
||
|
list1 = list1!.next
|
||
|
} else {
|
||
|
node!.next = list2
|
||
|
node = node!.next
|
||
|
|
||
|
list2 = list2!.next
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if list1 != nil {
|
||
|
node!.next = list1
|
||
|
}
|
||
|
if list2 != nil {
|
||
|
node!.next = list2
|
||
|
}
|
||
|
|
||
|
return head.next
|
||
|
}
|
||
|
}
|