题目 - Merge Two Sorted Lists
难度:简单
分析
迭代法
我们可以用迭代的方法来实现上述算法。当 l1 和 l2 都不是空链表时,判断 l1 和 l2 哪一个链表的头节点的值更小,将较小值的节点添加到结果里,当一个节点被添加到结果里之后,将对应链表中的节点向后移一位。
代码
func mergeTwoLists(_ l1: ListNode?, _ l2: ListNode?) -> ListNode? {
let dummy = ListNode(0)
var node = dummy
var l1 = l1, l2 = l2
while l1 != nil && l2 != nil {
if l1!.val < l2!.val {
node.next = l1
l1 = l1!.next
}else {
node.next = l2
l2 = l2!.next
}
node = node.next!
}
node.next = l1 ?? l2
return dummy.next
}