美文网首页
LeetCode算法题-21. 合并两个有序链表(Swift)

LeetCode算法题-21. 合并两个有序链表(Swift)

作者: entre_los_dos | 来源:发表于2019-10-12 11:25 被阅读0次

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/merge-two-sorted-lists
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    题目

    将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

    示例:

    输入:1->2->4, 1->3->4
    输出:1->1->2->3->4->4
    

    方法

       func mergeTwoLists(_ l1: ListNode?, _ l2: ListNode?) -> ListNode? {
            
            var l1 = l1
            var l2 = l2
            
            let resultNode = ListNode(0)
            var currentNode = resultNode
            
            while (l1 != nil) && (l2 != nil) {
                
                let val1: Int = l1!.val
                let val2: Int = l2!.val
                
                let node = (val1 < val2 ? l1 : l2)
                                    
                currentNode.next = node
                node === l1 ? (l1=l1!.next) : (l2=l2!.next)
                currentNode = currentNode.next!
            }
            
            currentNode.next = (l1 != nil ? l1 : l2)
            return resultNode.next
        }
    

    相关文章

      网友评论

          本文标题:LeetCode算法题-21. 合并两个有序链表(Swift)

          本文链接:https://www.haomeiwen.com/subject/kqytmctx.html