• leetcode刷题笔记二十一 合并两个有序列表 Scala版本


    leetcode刷题笔记二十一 合并两个有序列表 Scala版本

    源地址:21. 合并两个有序链表

    问题描述:

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

    示例:

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

    代码补充:

    //本题较为简单,将情况分为以下三种
    //1.l1到尾部, l2未到尾部, 将剩余l2的部分挂上去
    //2.l2未到尾部,l1到尾部,将剩余l1的部分挂上去
    //3.l1 l2均为到达尾部,将比较当前l1和l2的值,将当前较小值的结点挂
    //入,下一个节点将由推进一位的链表与未被选中的链表的值比较获得
    object Solution {
        def mergeTwoLists(l1: ListNode, l2: ListNode): ListNode = (l1, l2) match {
            case (null, l2) => l2
            case (l1, null) => l1
            case (l1, l2) if (l1.x <= l2.x) => {
                l1.next = mergeTwoLists(l1.next, l2)
                l1
            }
            case (l1, l2) if (l1.x > l2.x) => {
                l2.next = mergeTwoLists(l1, l2.next)
                l2
            }
        }
    }
    
  • 相关阅读:
    hibernate
    杨辉三角
    查看端口号
    一个线程同步问题的例子
    SQL关系数据库设计三大范式
    C#OpenFileDialog的使用
    莫队算法
    蒟蒻已知的高能数学公式
    C++ 产生随机数
    C++ 输出小数点后 n 位
  • 原文地址:https://www.cnblogs.com/ganshuoos/p/12741120.html
Copyright © 2020-2023  润新知