美文网首页
面试题25. 合并两个排序的链表

面试题25. 合并两个排序的链表

作者: 阿星啊阿星 | 来源:发表于2020-02-14 16:09 被阅读0次

    合并两个排序的链表

    题目描述

    输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。


    示例:

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


    提示:
    0 <= 链表长度 <= 1000

    转载来源:力扣(LeetCode)


    题目分析

    两个链表都是有序的这就好办了,典型的归并排序,谁小谁先上的原则,没什么好说的,show the code:

    fun mergeTwoLists(l1: ListNode?, l2: ListNode?): ListNode? {
            val head = ListNode(0)
            var now = head 
            var h1 = l1
            var h2 = l2
            while(h1 != null && h2 != null){
                if(h1.`val` < h2.`val`){
                    now.next = h1
                    now = h1
                    h1 = h1.next
                }else{
                    now.next = h2
                    now = h2
                    h2 = h2.next
                }
            }
            if(h1 != null)
                now.next = h1 
            if(h2 != null)
                now.next = h2
            return head.next
        }
    

    代码文件


    相关文章

      网友评论

          本文标题:面试题25. 合并两个排序的链表

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