• 合并两个有序链表


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

    示例 1:

    输入:l1 = [1,2,4], l2 = [1,3,4]
    输出:[1,1,2,3,4,4]
    示例 2:

    输入:l1 = [], l2 = []
    输出:[]
    示例 3:

    输入:l1 = [], l2 = [0]
    输出:[0]

    提示:

    两个链表的节点数目范围是 [0, 50]
    -100 <= Node.val <= 100
    l1 和 l2 均按 非递减顺序 排列

    type ListNode struct {
        Val  int
        Next *ListNode
    }
    
    func mergeTwoLists(list1 *ListNode, list2 *ListNode) *ListNode {
        res := ListNode{}
        head := &res
        for list1 != nil || list2 != nil {
            if list1 == nil {
                head.Next = list2
                break
            }
            if list2 == nil {
                head.Next = list1
                break
            }
            if list1.Val < list2.Val {
                head.Next = list1
                list1 = list1.Next
            } else {
                head.Next = list2
                list2 = list2.Next
            }
            head = head.Next
        }
        return res.Next
    }
    # Definition for singly-linked list.
    class ListNode:
        def __init__(self, val=0, next=None):
            self.val = val
            self.next = next
    class Solution:
        def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]:
            res = ListNode()
            head = res
            while list1 != None or list2 != None:
                if list1 == None:
                    res.next = list2
                    break
                if list2 == None:
                    res.next = list1
                    break
                if list1.val < list2.val:
                    res.next = list1
                    list1 = list1.next
                else:
                    res.next = list2
                    list2 = list2.next
                res = res.next
            return head.next

    结束!

  • 相关阅读:
    给DOM元素绑定click事件也有学问
    几个JavaScript的浏览器差异处理问题
    CSS样式权重的级联cascade的概念
    你知道HTML标签设计的本意吗?
    一些奇怪的JavaScript试题
    JavaScript如何计算两个日期间的时间差
    Vim默认开启语法标识功能
    理解Python中的继承规则和继承顺序
    An Easy Introduction to CUDA C and C++
    super()
  • 原文地址:https://www.cnblogs.com/aaronthon/p/16132934.html
Copyright © 2020-2023  润新知