• 剑指 Offer 25. 合并两个排序的链表


    剑指 Offer 25. 合并两个排序的链表

    地址:剑指 Offer 25. 合并两个排序的链表

    问题描述:

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

    示例1:

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

    0 <= 链表长度 <= 1000

    /**
     * Definition for singly-linked list.
     * class ListNode(var _x: Int = 0) {
     *   var next: ListNode = null
     *   var x: Int = _x
     * }
     */
    object Solution {
        def mergeTwoLists(la: ListNode, lb: ListNode): ListNode = {
            val dummyHead = new ListNode(0)
            var cur = dummyHead
            var (l1, l2) = (la, lb)
            while (l1 != null && l2 != null) {
                if (l1.x <= l2.x) {
                    cur.next = l1
                    cur = cur.next
                    l1 = l1.next
                } else {
                    cur.next = l2
                    cur = cur.next
                    l2 = l2.next
                }
            }
    
            while (l1 != null) {
                cur.next = l1
                l1 = l1.next
                cur = cur.next
            }
    
            while (l2 != null) {
                cur.next = l2
                l2 = l2.next
                cur = cur.next
            }
    
            return dummyHead.next
        }
    }
    
    /**
     * Definition for singly-linked list.
     * type ListNode struct {
     *     Val int
     *     Next *ListNode
     * }
     */
    func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode {
        dummyHead := &ListNode{Val: 0, Next: nil}
        cur := dummyHead
        for l1 != nil && l2 != nil {
            if l1.Val <= l2.Val {
                cur.Next = l1
                cur = cur.Next
                l1 = l1.Next
            } else {
                cur.Next = l2
                cur = cur.Next
                l2 = l2.Next
            }
        }
    
        for l1 != nil {
            cur.Next = l1
            cur = cur.Next
            l1 = l1.Next
        }
    
        for l2 != nil {
            cur.Next = l2
            cur = cur.Next
            l2 = l2.Next
        }
    
        return dummyHead.Next
    }
    
  • 相关阅读:
    python实训day8
    python实训day7
    python实训day6
    python实训day5
    python实训day4
    python实训day3
    python实训day2
    python实训day1
    MyBatis入门-insert标签介绍及使用
    Shell入门-Shell脚本开发规范
  • 原文地址:https://www.cnblogs.com/ganshuoos/p/14190129.html
Copyright © 2020-2023  润新知